为什么SQL命令中“数据类型不匹配”?

czw 2000-02-29 08:16:00
问题如下:
利用SQL访问通过ODBC连接的ACCESS数据库时,
请问在 SET RS=CONN.EXECUTE("SQL命令")的SQL命令中,如何通过变量筛选整型字段,我在使用WHERE时总是说“数据类型不匹配”。 如:

aa=request("newvalue")
set rs=conn.Execute("update users set name='czw' where id='"&aa&"'")

其中aa为request赋值的变量。users是Access数据库中的一个表,它的id字段为整型。
我试用 aa=1 (1为id字段的一个值)替换 aa=request("newvalue") 问题依旧,请问怎样使aa的值与id匹配?
...全文
539 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
929 2000-03-01
  • 打赏
  • 举报
回复
REQUEST中QUERYSTRING传入就已经是字符串了,可以直接和SQL字符串连起来,如果查询条件是字符或日期才需要加引号。Un1说的对。
losed 2000-03-01
  • 打赏
  • 举报
回复
id段好像是数字型
bokei 2000-02-29
  • 打赏
  • 举报
回复
aa是整型,你再用单引号把他扩起来,结果系统就把id与一个字符串比较,当然会说不匹配.
应当改成Un1说的那种形式.
dengdun 2000-02-29
  • 打赏
  • 举报
回复
Un1是正确的,对于整形字段怎么可以引号呢?
假如aa为1,那么你写的SQL语句将会变为
update users set name='czw' where id='1',
这当然是不正确的,应该是
update users set name='czw' where id=1,
如果你不放心的话,可以进行一下类型转换,
set rs=conn.Execute("update users set name='czw' where id=" & CInt(aa))



LaoZheng 2000-02-29
  • 打赏
  • 举报
回复
如果 AA 不为String
将aa 转化为Strng
set rs=conn.Execute("update users set name='czw' where id=" & aa)

Un1 2000-02-29
  • 打赏
  • 举报
回复
试一下:
set rs=conn.Execute("update users set name='czw' where id=" & aa)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧