2011-05-09 63 views
2

我想在MS SQL Server 2005數據庫中將日期字段設置爲空。設置日期字段爲空

我在asp頁面上使用VBScript。

DB中的列允許空值。但是,當我嘗試添加一條記錄,而不是跟着日期字段通過任何東西,或嘗試設置現場發回的空,我得到這個錯誤:

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?

+0

哇,對不起,我只是發現我真正的問題。我用來發布到這個腳本的ajax函數是指向一個較老的asp文件,而不是我正在編輯的那個,它原來的問題實際上起作用。再次抱歉,並且非常感謝您願意嘗試解決我的問題。我應該如何分配點數/哪種解決方案最適合接受? – UpHelix 2011-05-09 22:31:06

回答

3

你能重構這個代碼爲:

execSomeSqlStatement("UPDATE client_notes SET client_notes_duedate = NULL 
WHERE client_notes_id=" & clientnotes_id) 

也許重構一點,以避免SQL注入漏洞?

+0

它現在不會拋出錯誤,但它不會覆蓋數據庫中的值,它們在更新後保持不變。 – UpHelix 2011-05-09 22:26:55

+0

請參閱有關解決方案的問題下的評論。 – UpHelix 2011-05-09 22:31:34

+0

@Dale;嘿沒問題。你更喜歡單個語句(UPDATE)而不是3個語句(SELECT,field update和rs.update)嗎? – 2011-05-09 22:35:03

相關問題