首页 > 解决方案 > 如何处理 DBNull 值

问题描述

dataGrid.DataSource = customDS.customDT.AsEnumerable()  
                      .GroupBy(r => r.Field("someID"))                  
                      .Select(g => {                      
                          CustomDS.customRow row = customDS.customDT.NewcustomRow();                      
                          row["someID"] = g.Key;                      
                          row["Tradingdate"] = g.First().Tradingdate;                      
                          row["MemberNo"] = ((object)g.First().MemberNo == DBNull.Value) ? "a" : "b";                      
                          row["Amt"] = (decimal?)g.Sum(r => r.Field("Amt"));                      
                          return row;                  
                       }).CopyToDataTable();

我有上面的代码抛出异常,因为MemberNo在. 在上述情况下,我不明白已经通过转换为对象并与 DBNull 进行比较来显式应用检查,并将硬编码为字符串或DBNullcustomDTab

标签: c#datatabledatasetdbnull

解决方案


您可以像这样处理 DBNull 值:

row["CancelledDate"] == DBNull.Value ? (DateTime?)null : 
                          Convert.ToDateTime(row["CancelledDate"]);

推荐阅读