2013-04-11 85 views
0

我有以下代碼:數據庫日期時間空手柄

var distinctRows = 
     (from row in ds.GetTable(this.TagShortName).AsEnumerable() 
     select new Audit  
      { 
      ID =row.Field<long>("ID"), 
      UpdatedBy =string.Format("{0} {1}", 
             row.Field<string>("UpdatedByFirstName"), 
             row.Field<string>("UpdatedByLastName")), 
      UpdatedOn = ow.Field<DateTime>("UpdatedOn") 
      }).Distinct(new AuditComparer()); 

當我有UpdateOn領域它拋出異常的空值:

UpdatedOn =row.Field<DateTime>("UpdatedOn") 

例外:不能投DBNull.Value鍵入「 System.DateTime的」。請使用可空類型。

如何處理?

+1

那麼什麼是'UpdatedOn'數據類型,您將需要爲'日期時間?' – V4Vendetta 2013-04-11 09:00:41

+0

完美!我得到了謝謝@ V4Vendetta – 2013-04-11 09:31:51

回答

0

使用Nullable<DateTime>DateTime?

UpdatedOn = row.Field<DateTime?>("UpdatedOn") 
+0

row.Field (「UpdatedOn」)不工作,我已經試過這個。如何在我的情況下使用Nullable ? – 2013-04-11 08:57:34

+1

@NomiAli,'Nullable '與'DateTime?'相同,後者只是語法suger,您需要確保您的'UpdatedOn'也被定義爲'DateTime?',或者您需要對照' null「,然後爲'UpdatingOn'分配一些默認值。 – Habib 2013-04-11 09:00:24

+1

確保UpdatedOn在實體數據模型中定義了Nullable。 – 2013-04-11 09:04:58

1

UpdatedOn可爲空或

UpdatedOn = row.Field<DateTime?>("UpdatedOn")?? DateTime.MinValue 
+1

@Habib感謝您指出,更新 – Damith 2013-04-11 09:08:45

相關問題