像这样的情况,不要这样写
用 :
Rs.Open "select * from member2011 where 1=2",conn,3,2
Rs.AddNew()
Rs("name")=sname
Rs("telphone")=tel
Rs("college")=college
Rs.Update()
Rs.Close
这样写,不会出现你那样的错误,也比较安全了
谢谢你,你的解答我采纳了,写起来确实不容易出错,以前我用VB和access写了个东西,用的不是你这种方法,中途就出现过好多次错误。
其实这个问题是出在我把那些变量放在了一个sub里面成了局部变了,最后是通过调试发现变量都为空才找出问题的。
@涵曦:
采纳给分啊 o(∩_∩)o 哈哈
呵呵,给的有点慢,刚回复完
用SQL Server Profiler看一下实际执行的SQL语句。
谢谢你,你的意见提醒了我使用这语句:
response.write(sql) '在这里输出一下sql语句 , 看看哪里有没有问题
response.end ' 停止
如下:
sql="Insert InTo member2011(name,telphone,number,college,classname,iscadre,remark,position) values('"+sname+"','"+telphone+"','"+snumber+"','"+college+"','"+classname+"',"+iscadre+",'"+remark+",'"+position+"')"
response.write(sql) '在这里输出一下sql语句 , 看看哪里有没有问题
response.end ' 停止
Conn.Execute(sql)
Conn=nothing
Conn.Close
让我知道了问题所在,是因为我把那些变量放在了一个sub里面,成了局部变量,所以就在这个sub里面,那些变量为空。从而出问题了
试试:
还有,如果有非字符类型的不要加单引号,不知道你的telphone,number在数据库中是什么类型?
是我问题没写清楚,不好意思,您的解答我试过,今天忙了一天就在查错,终于可以了,谢谢你
,"&isadmin&", 是这个地方的问题把,不能用双引号
不好意思,我问题没说清楚,一天没回复你,现在问题解决了,谢谢你的回答
&sname&"','"&tel&"','"&snumber&"','"&college&"','"&zclass&"',"&isadmin&",'"&remark&"
这几个变量如果有一个含有 单引号 那么就 拼接出错了,还有如果这个几个变量中如果是非字符串型并且为空 那么这个地方就会拼接出2个逗号,那么就错误了
1:参数化拼接
2:过滤单引号
3:判断空时的默认值
谢谢你,确实是变量为空的原因。我把那些变量放在了一个sub里面成了局部变了,最后是通过调试发现变量都为空才找出问题的。