【发布时间】:2018-04-26 03:53:00
【问题描述】:
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 在customDT 中是DBNull。在上述情况下,我不明白已经通过转换为对象并与 DBNull 进行比较来显式应用检查,并将硬编码为字符串 a 或 b
【问题讨论】:
-
g.First().MemberNo == null 有什么问题?
-
你到底得到了什么异常?
-
您确定
g.First()具有属性MemberNo。如果customDT是DataTable类型,那么g .First()应该是DataRow -
你能试试我的答案吗,我认为这会起作用
-
g.First().Field<string>("MemberNo") == null ? "a" : "b"。 DataRow.Field<string>(columnName)将返回null如果字段包含DbNull
标签: c# datatable dataset dbnull