我正在尝试将 MS SQL Server 2005 数据库中的日期字段设置为 null。
我在 asp 页面上使用 VBScript。
数据库中的列允许空值。但是,当我尝试添加记录而不将任何内容传递到日期字段,或者尝试将该字段设置回 Null 时,我收到此错误:
Provider error '80020005'
Type mismatch.
/add_client_notes.asp, line 142
第 142 行是:rs("client_notes_duedate") = client_notes_duedate
这是所有代码:
<%
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
%>
我尝试发送空值和 NULL 值,但都返回相同的错误。
当我发送日期值时,效果很好。
如何将 client_notes_duedate 设置回 NULL?
最佳答案
您能否将此代码重构为:
execSomeSqlStatement("UPDATE client_notes SET client_notes_duedate = NULL
WHERE client_notes_id=" & clientnotes_id)
也许可以进行更多重构以避免 SQL 注入(inject)漏洞?
关于sql-server - 将日期字段设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943041/