注册 登录
编程论坛 ASP技术论坛

循环update数据库,只能修改第一条,无错误提示.

Kettyjin1983 发布于 2008-04-22 10:23, 1333 次点击
这段代码是循环update数据库里的内容,可我发现每次只能改第一条记录.这段代码有什么问题吗,并没有出现错误提示.
    set conn=server.createobject("adodb.connection")
    set rs=server.createobject("adodb.recordset")
    constr="Provider=SQLOLEDB;Data Source=HZSQL01;Initial Catalog=HRDB;User ID=ReadWrite;Password=WriteRead"
    conn.open = constr
    rs.open "select * from Lease_equip where badge ='"&owner&"' and active=2",conn,1,1
    do while not rs.eof
        autoid = rs("autoid")
        active="select"&rs("autoid")
        comments = "test"&rs("autoid")
        active            = Cint(request.form(active))
        comments            = trim(request.form(comments))
        'response.write active
        set temprs=server.createobject("adodb.recordset")
        sql = "update Lease_equip set active = '"&active&"',comments= '" &comments & "',disabledate = '"&disabledate&"' where autoid ='" & AutoID &"'"        temprs.open sql,con,1,3
        'response.write sql
    
        temprs.close
        set temprs = nothing
        con.close
        set con = nothing
    
    rs.movenext
    Loop
    rs.close
    set rs = nothing
    conn.close
    set conn= nothing
9 回复
#2
feelingxj2008-04-23 01:28
输出一下SQL,看究竟执行了几次.另外即然只是UPDATE,为什么不直接用EXECUTE?
#3
zmhdxy2008-04-23 11:21
sql语句中 字符串要用'' 数字就不要用 这个有没有错啊
#4
Kettyjin19832008-04-24 10:27
输出SQL语句,完全争取.但就只执行一条记录.
#5
Kettyjin19832008-04-24 10:38
response.write sql的结果如下:可事实上数据库里只修改了第一条,为什么啊?
update Lease_equip set active = '3',comments= 'test13',disabledate = '2008-4-24 10:37:01' where autoid =13update Lease_equip set active = '3',comments= 'test14',disabledate = '2008-4-24 10:37:01' where autoid =14update Lease_equip set active = '3',comments= 'test16',disabledate = '2008-4-24 10:37:01' where autoid =16update Lease_equip set active = '3',comments= 'test17',disabledate = '2008-4-24 10:37:01' where autoid =17update Lease_equip set active = '3',comments= 'test18',disabledate = '2008-4-24 10:37:01' where autoid =18
#6
Kettyjin19832008-04-25 10:23
代码重新敲了一遍就好了,诡异的事情.
#7
fengmumei2008-04-26 16:52
set conn=server.createobject("adodb.connection")
    set rs=server.createobject("adodb.recordset")
    constr="Provider=SQLOLEDB;Data Source=HZSQL01;Initial Catalog=HRDB;User ID=ReadWrite;Password=WriteRead"
    conn.open = constr
    rs.open "select * from Lease_equip where badge ='"&owner&"' and active=2",conn,1,1
    do while not rs.eof
        autoid = rs("autoid")
        active="select"&rs("autoid")
        comments = "test"&rs("autoid")
        active            = Cint(request.form(active))
        comments            = trim(request.form(comments))

       conn.execute("update Lease_equip set active = '"&active&"',comments= '" &comments & "',disabledate = '"&disabledate&"' where autoid ='" & AutoID &"'")        
      
    rs.movenext
    Loop
    rs.close
    set rs = nothing
    conn.close
    set conn= nothing
#8
yms1232008-04-27 16:02
set conn=server.createobject("adodb.connection")
    set rs=server.createobject("adodb.recordset")
    constr="Provider=SQLOLEDB;Data Source=HZSQL01;Initial Catalog=HRDB;User ID=ReadWrite;Password=WriteRead"
    conn.open = constr
    rs.open "select * from Lease_equip where badge ='"&owner&"' and active=2",conn,1,3
    do while not rs.eof
        autoid = rs("autoid")
        active="select"&rs("autoid")
        comments = "test"&rs("autoid")
        active            = Cint(request.form(active))
        comments            = trim(request.form(comments))
        rs("active")=active
        rs("comments")=comments
        rs("disabledate")=disabledate
        rs.Update
    rs.movenext
    Loop
    rs.close
    set rs = nothing
    conn.close
    set conn= nothing
用一个rs记录集就可以Update的
#9
fengmumei2008-04-30 20:12
楼上说的是
#10
lele20072008-05-02 12:47
我来凑热闹的,但我看:  conn.open = constr   这个不知道对不对,应该是:  conn.open constr   =这个也可以?
1