Sql server 将日期字段设置为空
我正在尝试将MS SQL Server 2005数据库中的日期字段设置为null 我正在asp页面上使用VBScript DB中的列允许空值。但是,当我尝试添加记录而不向日期字段传递任何内容,或尝试将该字段设置回Null时,会出现以下错误: 提供程序错误“80020005” 类型不匹配 /添加_client_notes.asp,第142行 第142行是:Sql server 将日期字段设置为空,sql-server,sql-server-2005,tsql,vbscript,asp-classic,Sql Server,Sql Server 2005,Tsql,Vbscript,Asp Classic,我正在尝试将MS SQL Server 2005数据库中的日期字段设置为null 我正在asp页面上使用VBScript DB中的列允许空值。但是,当我尝试添加记录而不向日期字段传递任何内容,或尝试将该字段设置回Null时,会出现以下错误: 提供程序错误“80020005” 类型不匹配 /添加_client_notes.asp,第142行 第142行是:rs(“客户票据到期日”)=客户票据到期日 以下是所有代码: <% clientnotes_id = request("clie
rs(“客户票据到期日”)=客户票据到期日
以下是所有代码:
<%
clientnotes_id = request("clientnotes_id")
client_notes_duedate = request("client_notes_duedate")
if client_notes_duedate = "" then
client_notes_duedate = Null
end if
openSQL("SELECT * FROM client_notes WHERE client_notes_id=" & clientnotes_id)
rs("client_notes_duedate") = client_notes_duedate
rs.update
%>
我尝试发送一个空值和一个空值,但都返回相同的错误
当我发送日期值时,效果非常好
如何将客户端\u notes\u duedate设置回NULL?您是否能够将此代码重构为:
execSomeSqlStatement("UPDATE client_notes SET client_notes_duedate = NULL
WHERE client_notes_id=" & clientnotes_id)
也许需要进行更多的重构以避免SQL注入漏洞?它现在不会抛出错误,但不会覆盖数据库中的值,更新后这些值保持不变。请参阅“我的问题”下有关解决方案的注释。@Dale;嘿,没问题。你更喜欢单语句(一个更新)而不是三个语句(SELECT、field UPDATE和rs.UPDATE)?哇,对不起,伙计们,但我发现了我真正的问题。我在脚本中使用的ajax函数指向的是一个旧的asp文件,而不是我正在编辑的文件,原始问题中的代码实际上是有效的。再次抱歉,非常感谢你愿意尝试解决我的问题。我应该如何划分要点/哪种解决方案最适合接受?