问题描述
我正在尝试使用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
。