2009-08-26 163 views
1

如何檢查DataRow中的空日期時間值?檢查是否爲空DataRow

以下內容適用於dataReader。

calEventDTO.endTime = dr.IsDBNull(9) ? null : (DateTime?) dr.GetDateTime(9); 

檢查以下DataRow時的等效項是什麼?

calEventDTO.endTime = (DateTime)row["endTime"]; 

回答

1

使用Convert.IsDBNull:


calEventDTO.endTime = (DateTime?) (Convert.IsDBNull(row["endTime"]) ? null : row["endTime"]); 
+0

這與ReSharper爲我找到的一些小調整(添加(DateTime?))有關。 calEventDTO.recurrenceID = Convert.IsDBNull(row [「recurrenceID」])? (DateTime?)null:(DateTime)row [「recurrenceID」]; – Chin 2009-08-26 10:42:00

+0

是啊......我用你的第一個片段(不會投)作爲我的基地。我已經更新了我的表達式的結果,而不是轉換三元運算符的每個操作數。 – 2009-08-26 11:21:12

1
calEventDTO.endTime = row["endTime"] != null ? (DateTime)row["endTime"] : null; 

甚至更​​好

calEventDTO.endTime = row["endTime"] as DateTime; 

PS。我假設你正在使用C#,因爲你沒有給出關於該語言的任何細節。

+2

,因爲它是值類型和'as'運算符只能引用類型使用您不能使用日期時間的'as'操作。 – 2009-08-26 10:33:35