我已經看到了許多這樣的版本,但它們都不符合我的需求。處理日期時間DBNull
我的數據來自供應商數據庫,該數據庫允許DateTime字段爲空。首先,我將數據放入DataTable中。
using (SqlCommand cmd = new SqlCommand(sb.ToString(), conn))
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
我的DataTable轉換爲列表<>進行處理。
var equipment = from i in dt.AsEnumerable()
select new Equipment()
{
Id = i.Field<string>("ID"),
BeginDate = i.Field<DateTime>("BeginDate"),
EndDate = i.Field<DateTime>("EndDate"),
EstimatedLife = i.Field<double>("EstimatedLife")
}
那麼,在這種情況下如何檢查DBNull?我試圖寫一個方法。
public DateTime CheckDBNull(object dateTime)
{
if (dateTime == DBNull.Value)
return DateTime.MinValue;
else
return (DateTime)dateTime;
}
所以我的設備對象定義'DateTime'領域''的DateTime如果 – 2010-10-20 14:24:16
這是一個有效的商業案例爲您設備沒有開始或結束日期,那麼是的。否則,你的數據庫層應該拋出一個異常。 – 2010-10-20 14:29:22
是的 - 這是'Nullable'的快捷方式' –
2010-10-20 14:30:26