我有兩種情況需要將Sql中的DateTime字段設置爲空。我使用C#和LINQ to SQL類。我閱讀了很多關於stackoverflow的問題,這些問題就像我的問題,但我仍然有點不同。如何將LINQ的Sql DateTime設置爲空
當我們插入一個新的客戶。
相應的代碼:
Customer customer = new Customer();
customer.CustomerName = txt_name.Text;
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : //send null here;
customer.DOB是System.DateTime的。
我想的是:
1)
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : SqlDateTime.Null;
但這不會成功,因爲SQLDATETIME不能轉換爲System.DateTime。
2)
DateTime? nullDateTime = new DateTime();
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : nullDateTime.Value
在這種情況下,建立成功,但它會拋出一個SQLDATETIME溢出異常。
那麼接下來如何通過在LINQ數據類空值DOB成員屬性
他們中的許多建議設置自動生成的值設置爲true,不插入任何價值。誠然,它適用於插入案例。
但是現在假設已經有一個客戶條目,其中一些日期時間值被設置爲DOB字段。現在用戶想要清除該值(刪除出生日期),那麼在這種情況下,我必須使用UpdateOn傳遞空值來清除相應客戶行中的日期時間字段。
非常感謝你提前:)
它可以爲空,您能不能將它設置爲'null'? – 2011-04-16 08:36:26
如果列可以爲空,則Customer.DOB應該是DateTime?而不是DateTime。 – 2011-04-16 08:48:05