错误类型:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
不允许从数据类型 varchar 到数据类型 money 的隐性转换(表 'dbao.dbo.Tab_pro',列 'price')。请使用 CONVERT 函数来运行此查询。
/star/admin/upload_chk.asp, 第 50 行
代码:
<% if session("uname")="" then
response.Redirect "../index.asp"
end if%>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
<%
Server.ScriptTimeout=999
%>
<!--#include file="conn.asp"-->
<!--#include file="UpLoadClass.asp"-->
<%
dim myrequest
set myrequest=New UpLoadClass
myrequest.AutoSave=2
myrequest.MaxSize = 10000*1024
myrequest.FileType = "jpg/gif/bmp/png"
myrequest.Savepath = "../UpLoadFile/"
myrequest.open
%>
<%
ptype_t=myrequest.form("type")
xtype_t=myrequest.form("xtype")
price_t=CLng(myrequest.form("price")) '这里出错啊!!!!!!!!!!!!!!!!!!
session("pname")=myrequest.Form("pname")
myrequest.MaxSize=1024000
if myrequest.Save("small_img",0) then
session("small_img")=myrequest.SavePath&myrequest.Form("small_img")
end if
content_t=myrequest.Form("content")
shopname_t=myrequest.form("shopname")
shopurl_t=myrequest.form("shopurl")
adtime=left(now(),(instr(now()," ")-1))
%>
<% session("int_id")="pro"&replace(replace(replace(replace(replace(session("small_img"),"../UpLoadFile/",""),".jpg",""),".png",""),".gif",""),".bmp","")
set rs=server.CreateObject("adodb.recordset")
sql="select * from [Tab_pro]"
rs.open "Tab_pro",conn,3,3
sql="insert into [Tab_pro](type,xtype,price,pname,small_img,content,shopname,shopurl,int_id,adtime)values('"&ptype_t&"','"&xtype_t&"','"&price_tt&"','"&session("pname")&"','"&replace(session("small_img"),"../","")&"','"&content_t&"','"&shopname_t&"','"&shopurl_t&"','"&session("int_id")&"','"&adtime&"')"
conn.execute(sql)
'response.Write sql
'response.end()
int_id=session("int_id")
sql="create table "&int_id&"(id decimal identity primary key,user_id varchar(50),ip varchar(50),adtime datetime,code varchar(50),biao char(10))"
conn.execute sql
'rs.update
' session.Abandon()
if err then %>
<script language="javascript">
alert("ujmk上传失败,请稍后再试~!")
history.back()
</script>
<% else
response.Redirect "cs_1.asp"
end if
set myrequest=nothing
%>
參考答案:WEB开发 - VBScript - 基础教程
VBScript CLng 函数
作者:unknown 更新时间: 2005-04-05
CLng 函数
返回表达式,此表达式已被转换为 Long 子类型的 Variant。
CLng(expression)
expression 参数是任意有效的表达式。
说明
通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如,在出现货币运算、单精度或双精度算术运算的情况下,使用 CInt 或 CLng 函数强制进行整数运算。
CLng 函数用于进行从其他数据类型到 Long 子类型的的国际公认的格式转换。例如,对十进制分隔符和千位分隔符的识别取决于系统的区域设置。
如果 expression 取值不在 Long子类型的允许范围内,则会出现错误。
下面的示例利用 CLng 函数把值转换为 Long:
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 是双精度值。
MyLong1 = CLng(MyVal1) ' MyLong1 25427。
MyLong2 = CLng(MyVal2) ' MyLong2 包含 25428 。
注意 CLng 不同于 Fix 和 Int 函数删除小数部分, 而是采用四舍五入的方式。 当小数部分正好等于 0.5 时, CLng 函数总是将其四舍五入为最接近该数的偶数。如, 0.5 四舍五入为 0, 以及 1.5 四舍五入为 2 。