主题:  asp数据类型转换求教

liangzn28

职务:普通成员
等级:1
金币:0.0
发贴:60
注册:2005/10/14 11:55:43
#12005/11/4 8:26:18
大虾们有用过ASP里面的CInt(),CStr()之内的转换函数吗?
下面我有几个函数请帮忙看看。
我在数据库表里面的UserID的类型是“自动编号”
第一种查询并输出
<%
Dim rs,strSql,a
a=1
strSql="select * From [user] where UserID=1"
Set rs=db.Execute(strSql)
response.Write(rs("UserName"))
%>
如果在查询语句strSql="select * From [user] where UserID=1"里面直接以1为条件的话就可以正常
输出数据库里面的输出UserName字段值。

第二种查询并输出
<%
Dim rs,strSql,a
a=1
strSql="select * From [user] where UserID='"&CInt(a)&"'"
Set rs=db.Execute(strSql)
response.Write(rs("UserName"))
%>
如果把1赋值给变量a,然后以a为查询语句条件进行查询就会出现下面错误:
Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。
/one/index.asp, 第 43 行

于是我就试着把a=1写成a=CInt(1),也是有错误!

上面的问题请大虾们指教吧!呵呵!



浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
注册:2001/11/19 12:41:09
#22005/11/4 8:44:14
你的a本身就是整数,还CInt做什么?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#32005/11/4 9:26:17
strSql="select * From [user] where UserID='"&CInt(a)&"'"
这里只是进行字符串连接.无需考虑什么整形字符串.
直接
strSql="select * From [user] where UserID="&a

你要转换也是应该把整形转换成字符串
还有,为什么你要加单引号



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#42005/11/4 9:39:18
&连接符是连接字符串的,应用可以用
sql & cstr(a)


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#52005/11/4 16:06:44
在做这样的字符串连接的时候
strSql="select * From [user] where UserID="&a

你不应该去考虑引号里面的内容.你只要知道他们是字符串,在你眼里,应该是这样的形式:
"███████████████" & a

当构建成了一个sql语句的时候,你再考虑字符串整形之类的问题