2013-01-03 77 views
0

我有一個允許更新數據庫列的Web表單應用程序。其中一個數據庫列是Finish Date,它是SQL Server數據庫中的date數據類型。ASP.NET使用參數在SQL Server數據庫中保存空日期值

我使用帶參數和文本框的SQL查詢爲完成日期提供新值。

這是一個讓我的日期值從一個文本框格內的代碼:

TextBox tFD = (TextBox)grdProjectUpdate.Rows[e.RowIndex].Cells[11].FindControl("proFDTextBox"); 

然後我用一個參數:

cmd.Parameters.Add("@proFD", SqlDbType.Date).Value = tFD.Text.Trim(); 

使用此更新值SQL語句:

UPDATE PMSprojects SET proFD = @proFD ,...  

此解決方案在任何提供的實際日期內工作正常。但是,它不保存空值。如果我提供一個空字符串,它將被轉換爲1900-01-01日期,即使數據庫中的列允許空值。

我該如何解決這個問題並將null保存到數據庫中?

回答

3

你必須編寫代碼來處理,並在值爲null時通過DbNull.Value

cmd.Parameters.Add("@proFD", SqlDbType.Date).Value = (tFD.Text.Trim().Length > 0) ? (object)tFD.Text.Trim() : DbNull.Value; 
+0

太棒了!感謝幫助。 – Bartosz

相關問題