如何使用经典ASP更新SQL中的多个记录

问题描述

我正在尝试使用Classic ASP中的相同社交更新两条记录,但是我不确定如何更新。这就是我所拥有的...但是它不会更新两个记录。

    set rsTblEmpl=Server.CreateObject("ADODB.Recordset")
    if 1=1 then
        sql = "select * from tblEmpl where ssn=" & stRSSn & ";"
    else
        sql = "select * from tblEmpl where eight_id=" & intEight_id & ";"
    end if 
    rsTblEmpl.open sql,conn,2,3
    if not rsTblEmpl.eof then
        rsTblEmpl("posid")   = StrPosId
        rsTblEmpl("posname") = StrPosName
        rsTblEmpl.update
    end if
    rsTblEmpl.close
    set rsTblEmpl=nothing

解决方法

之所以只更新1个值,是因为您没有遍历所有记录。您将只更新它找到的第一条记录。因此,如果有多个具有相同SSN的记录,则必须将if语句更改为循环。

do until rsTblEmpl.eof
    rsTblEmpl("posid")   = StrPosId
    rsTblEmpl("posname") = StrPosName
    rsTblEmpl.update
    rsTblEmpl.movenext
loop

或者您可以使用参数化的UPDATE语句一次性完成所有操作:

UPDATE tblEmpl SET posid = ?,posname = ? WHERE ssn = ?

我假设顶部的if 1=1是一个占位符,因为现在它将始终为true,因此不需要else