2011-12-20 77 views
2

我想輸入一個日期到Oracle數據庫。有時這個值將爲空。所以在我寫的函數中,我需要一種方法來傳遞這個空值。我將這個日期作爲參數傳遞給存儲過程。該參數可以爲null。我正在使用Oracle.DataAccess dll來讓這件事情起作用。如果它確實是空的,我想只是拋出一個空變量。你認爲那會奏效嗎?下面是我目前設立這種情況下...有沒有這樣的事情在C#中的空白日期

cmd.Parameters.Add("ACTIVE_DATEIn", DateTime.Parse(ActiveDate)); 
conn.Open(); 
outcome = cmd.ExecuteNonQuery(); 

活動日期是,我要通過在可能的空變量。顯然,你不能轉換爲空值轉換成日期時間。你們會建議做什麼?

回答

8

由於DateTimestruct,因此它不能包含null值。

有些人使用DateTime.MinValue來存儲空值。一個更好的方法可能是使ActiveDate代替DateTime?

更新:

您也可以嘗試這樣的:

cmd.Parameters.Add("ACTIVE_DATEIn", (ActiveDate == null ? OracleDate.Null : OracleDate.Parse(ActiveDate))); 
+0

不好。我一直得到同樣的例外。但我確實喜歡這個答案。 – SoftwareSavant 2011-12-20 20:04:57

+0

如果值爲null,請嘗試傳入'OracleDate.Null'。 – 2011-12-20 20:08:43

3

您可以通過DateTime放置?類型後實施INullable。

DateTime? date; 

這是ofcourse相當於

Nullable<DateTime> date; 
1

您可以使用DateTime.MinValue而不是空的,或者使你的DateTime對象爲空。

1

如果您的ActiveDate代表null,則可能需要使用DBNull.Value

相關問題