2010-04-26 76 views
0

我嘗試使用下面的代碼建立在一個時間一個DataTable一行。的DataTable C#空列類型

foreach (var e in Project.ProjectElements[hi.FakeName].Root.Elements()) { 
     index = 0; 
      object[] obj=new object[count]; 
      foreach (var holdingColumn in names) { 
       string d = e.Attribute(holdingColumn.Key).Value; 
       obj[index++] = d; 
      } 
      dt.Rows.Add(obj); 
     } 

問題是DataTable具有綁定到列的類型。有時我會在該對象索引中傳遞null(或一個空字符串),它告訴我它不能正確轉換爲DateTime(在這種情況下)。我的問題是我應該默認這個值,或者有什麼辦法讓DataTable忽略空值。

回答

3

設置DataColumn到真正的AllowDBNull屬性,然後寫

if (String.IsNullOrEmpty(d)) 
    obj[index++] = DBNull.Value; 
else 
    obj[index++] = d; 
+0

我知道這會是如此簡單,我只是想不出使用谷歌找到它。 – Dested 2010-04-26 03:16:53

+0

您可能還需要調用'Convert.ChangeType'。 – SLaks 2010-04-26 03:18:01