主题:大家看看这个for循环语句中的sql为什么只执行一次
goolean
[专家分:130] 发布于 2007-04-09 16:20:00
for i=0 to 2
rs.open "update daoyou set num3='1236' where id="&i ,conn,1,3
response.write "update daoyou set num3='1236' where id="&i&"<p>"
next
sql语句 的意思是让 daoyou表中id从0到2共三个记录的字段num3全部相同
显示语句response.write ,都执行了三次,并且显示没有问题,
可update只执行了当i=0的第一次,为什么啊
最后更新于:2007-04-09 17:00:00
回复列表 (共8个回复)
沙发
shiwei2006 [专家分:1340] 发布于 2007-04-09 16:41:00
sql语句有问题
可以用conn.execute(sql)
sql="update ..." $i什么意思看不懂
板凳
goolean [专家分:130] 发布于 2007-04-09 16:56:00
楼上的一样只执行一次
另,sql语句没有问题
3 楼
shiwei2006 [专家分:1340] 发布于 2007-04-09 16:58:00
"update daoyou set num3='"&num3&"' where id="$i
sql中没有这样的写法 $i什么意思
4 楼
goolean [专家分:130] 发布于 2007-04-09 17:01:00
[quote]"update daoyou set num3='"&num3&"' where id="$i
sql中没有这样的写法 $i什么意思[/quote]
不好意思,我是在贴本贴时写错的,源码没错,是&
5 楼
shiwei2006 [专家分:1340] 发布于 2007-04-09 17:08:00
那你第一步先确定此数据表有可以操作的记录
第二步 rs.open "update daoyou set num3='1236' where id="&cstr(i) ,conn,1,3
这样就没问题了
6 楼
我是晴天 [专家分:40] 发布于 2007-04-09 22:10:00
不可能有错的哦~~~~..
完整代码:
<%
dim rs,sql,i
set rs=server.CreateObject("adodb.recordset")
for i=1 to 3
sql="update user set user='修改' where id="&i&""
rs.open sql,conn,1,3
response.Write sql&"<br>"
next
%>
7 楼
goolean [专家分:130] 发布于 2007-04-10 09:07:00
我把我实际遇到情况贴出来吧
man的值是由上一级的复选框选过来的,后来发现执行后出来以上情况,怎么也想不通,后来无意中让程序输出的name的值,发出原因是name中含空格,去除就OK,特此贴出来,希望对遇到这类情况的朋友有帮助!
man=split(name,",")
for i=0 to ubound(man)
sql="update daoyou set dateS='2007-9-9' where name='"&man(i)&"'"
conn.execute(sql)
response.write man(i)&"<p>"
next
屏显如下:
张三
李四
王五
但数据表实际只执行了当name="张三"这一次
8 楼
liulei001 [专家分:12820] 发布于 2007-04-10 09:17:00
1、相同名称表单控件,传递过来的值是用逗号和空格分隔的。
如果要用split切割,必须用man=split(name,", ")
不过还有一个简单的方法
For Each item in Request("name")
SQL="update daoyou set dateS='2007-9-9' where name='"& item &"'"
Next
2、最好把所有的SQL语句合并成一句,一次执行,减少数据库链接。
我来回复