我有一個可爲空的DateTime變量。我想將它寫入SQL DB。當我嘗試插入時:如何將Nullable DateTime變量的空值轉換爲DbNull.Value
如果變量有值,則沒有問題。
但是,如果它沒有值,插入中斷與一個錯誤。
我想問:我們如何通過DbCommand參數插入可空的DateTime到Sql?
(附註:SQL列可以爲空過。)
DateTime? myDate = null;
DbCommand dbCommand = new DbCommand();
dbCommand.Parameters.Add("NullableSqlDateField", DbType.DateTime, myDate);
什麼錯誤,你得到什麼?我相信你*可以交替使用'null'和'DBNull.Value'。 – Yuck 2011-12-29 14:48:45
@Yuck - 我不認爲你可以交換使用這兩個,或者至少你不能與所有的數據庫提供者一起使用。將空值插入數據庫時應使用DBNull.Value。在處理null和DBNull.Value時,語義上有細微差別:null引用無效的對象引用,而DBNull.Value引用數據庫行中的未知值。看起來像頭髮分裂,但這是我能看出差異的最佳推理。 – matt 2011-12-29 17:20:41
@ mjd79它可以與'SqlDbCommand'一起使用,也許不會與'DbCommand'一起使用。 – Yuck 2011-12-29 17:51:44