自动编号id的变量怎样在sql中引用
<%reid=request.form("id")setconn=server.createobject("adodb.connection")conn.openconn...
<%
reid=request.form("id")
set conn=server.createobject("adodb.connection")
conn.open connstring
sql="delete * from date where userid=' " &reid& " ' "
conn.execute sql
conn.close
set conn=nothing
%>
提示
Microsoft JET Database Engine 错误 '80040e07'
标准表达式中数据类型不匹配。
行 7出错,行7的内容是这句 conn.execute sql
我的request.form("id")是从上一个网页中从数据库读出来然后用超链接传递过来的,数据类型是access自动编号的长整型,请问这是哪里出错了呢??reid的引用用了多种引号都不好使,顺便可不可以普及一下sql语句引用各种类型变量的写法 展开
reid=request.form("id")
set conn=server.createobject("adodb.connection")
conn.open connstring
sql="delete * from date where userid=' " &reid& " ' "
conn.execute sql
conn.close
set conn=nothing
%>
提示
Microsoft JET Database Engine 错误 '80040e07'
标准表达式中数据类型不匹配。
行 7出错,行7的内容是这句 conn.execute sql
我的request.form("id")是从上一个网页中从数据库读出来然后用超链接传递过来的,数据类型是access自动编号的长整型,请问这是哪里出错了呢??reid的引用用了多种引号都不好使,顺便可不可以普及一下sql语句引用各种类型变量的写法 展开
1个回答
展开全部
sql="delete * from date where userid=" &reid
追问
最快回答,也是准确的答案,很感谢,不知道可否简单解析一下,为什么变量&reid前面有个双引号,而后面没有呢?
追答
对于 sql 字符串的拼接,你要理解他的意思,就是一串 常量字符串和一些 变量的相加构成动态的sql. 所以引号是成对出现的,&reid 的引号是和最前面的那个成对的,是把前面那一节 作为常量 字符串的意思,
这里就要涉及到 拼接的变量类型,如果是字符串 或者说在数据库 是varchar 货nvarchar 类型的都要用单引号,其他的类型就不用,还有时间类型,
所以如果你的reid 是个字符串 的或就要用单引号: 就该这样写
sql="delete * from date where userid=' " &reid& " ' "
这样的些的意思 本质 是 用单引号 把reid 包起来,前面半个=' " ,后面半个 " ' "
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询