中润资源谁借壳:asp批量添加数据的问题!

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 09:31:47
要做一简单的asp系统,批量添加满足条件userid的工人的年龄
代码是:
set rs = server.CreateObject ("Adodb.recordset")
Num=request.form("userid").count
for i=1 to Num
sql = "select * from oblog_user where userid="&request.form("userid")(i)
rs.Open sql,conn,1,3
while not rs.bof and not rs.eof
rs("xiaolunwen") = tempxiaolunwen
rs.update()
rs.movenext()
wend
rs.close
next

出现的问题是:把满足条件的人的所有年龄,都同时写了每个人的字段里。例如张三30岁、李四32岁、老王53岁。数据操作完成后,出现的结果是张三30,32,53岁,李四30,32,53岁,老王30,32,53岁
请教是什么原因?
谢谢“多线程单循环”朋友,还是提示错误:
rs.Open sql,conn,1,3
for i=1 to Num

“jwkwanght”朋友的问题“您response.write一下tempxiaolunwen变量中的数据是什么,没有猜错的话这个变量中的值本身就是30,32,53-_-。”

tempxiaolunwen变量中的数据,是来自每个表单!张三的年龄表单、李四的表单...,每个表单里只有一个年龄值。

set rs = server.CreateObject ("Adodb.recordset")
Num=request.form("userid").count
rs.Open sql,conn,1,3
for i=1 to Num
sql = "select * from oblog_user where userid="&request.form("userid")(i)
rs("xiaolunwen") = tempxiaolunwen
rs.update()
rs.movenext()
next

你的代码中有for...next,while...wend两层循环,因此结果是张三30,32,53岁,李四30,32,53岁,老王30,32,53岁 -_-。您response.write一下tempxiaolunwen变量中的数据是什么,没有猜错的话这个变量中的值本身就是30,32,53-_-。
还有就是访问数据库数据的开销比较大,最好不要循环update,当数据量比较大的时候会非常慢。
再有就是最好不要用request.form.count去充当条件修改数据,不便于维护;在您给出的例子中只有3个嘛,就去对应相应的text去修改,对大量数据的修改建议先读出来到text,待用户修改完毕提交的时候check一下然后对数据库delete掉原来的数据,insert上用户提交上来的数据。