Sql server 如何为经典ASP将SQL server中的某些数据更新为null

Sql server 如何为经典ASP将SQL server中的某些数据更新为null,sql-server,asp-classic,Sql Server,Asp Classic,我想在基于web的系统中使用经典ASP实现更新功能,使用户能够取消其应用程序。我没有使用delete函数,因为有些数据需要维护,有些数据将被设置为NULL。此功能还允许用户在表单中选择日期范围以删除其应用程序 没有显示错误,但当单击表单中的“取消”按钮时,数据集不会更新 代码如下: <%param="keyid=" & session("keyid") idkehadiran=request("idkehadiran") nokpl=request("nokpl") set Si

我想在基于web的系统中使用经典ASP实现更新功能,使用户能够取消其应用程序。我没有使用delete函数,因为有些数据需要维护,有些数据将被设置为NULL。此功能还允许用户在表单中选择日期范围以删除其应用程序

没有显示错误,但当单击表单中的“取消”按钮时,数据集不会更新

代码如下:

<%param="keyid=" & session("keyid")
idkehadiran=request("idkehadiran")
nokpl=request("nokpl")

set SimpanRS=server.CreateObject("adodb.recordset")
sql="select * from tms_kehadiran where nokpl='"&nokpl&"' and (tarikh >= '"&tarikh&"' and tarikh <= '"&hinggaTarikh&"')"
SimpanRS.open sql,connehr,3,3

while not SimpanRS.EOF
SimpanRS("alasan")=""
SimpanRS("nokpPenyelia")=""
SimpanRS("kelulusan")=null
if isnull(SimpanRS("datecreated")) then
SimpanRS("datecreated")=now
end if
SimpanRS("lastupdate")=now

SimpanRS.update
SimpanRS.movenext
wend
SimpanRS.close
set SimpanRS=nothing
%>


我不知道这个代码有什么错误。有人能帮我吗?

不要循环RS。你应该使用GetRows()


之后,您可以在循环数组的同时更新SQL server中的数据。

我没有立即发现任何错误,因此我建议执行通常的调试步骤:首先,
response.write SQL
,然后直接运行该SQL语句-它是否返回它应该返回的行?如果是,则添加
响应。在while循环中写入
s以查看它是否在循环-如果不是,则可能是您的连接字符串(
connehr
)造成的问题。要检查的另一件事是,
,3,3
是否打开可更新的记录集?虽然如果没有,我希望在
SimpanRS.update
行上出现运行时错误…我是Classic ASP的新手,我可以知道我可以在代码的哪一部分编写response.write吗@MarthaYou可以使用
响应。在代码中的几乎任何地方编写
。它会将您告诉它的任何内容写入页面的html中。我会编写“response.write”代码来检查记录集是否为空,但它不会显示任何内容。我将代码放在“while not SImpanRS.EOF”行之前,您建议他如何在不循环RS的情况下更新SQL server中的数据?如何执行GetRows()?