我正在使用以下代码并尝试按货币和代码进行分组。在此之后,我尝试遍历结果集。
但问题是在遍历结果时,最后我在每个语句中得到以下异常:
对象不能从 DBNull 转换为其他类型。
DataTable dt = new DataTable();
var result = from r in dt.AsEnumerable()
result r by new
{
currency = r.Field<String>("CURRENCY"),
Code = r.Field<String>("CODE")
}
into grp
select new
{
currency = grp.Key.currency,
Code = grp.Key.Code,
amount = grp.Sum(x => Convert.ToDouble(x["AMOUNT"]))
};
foreach (var obj in result)
{
String sCurr =obj.currency;
String Code = obj.Code;
string amount= obj.amount.ToString());
}
请帮我解决这个问题。
最佳答案
有点像
amount = grp.Sum(x => Convert.ToDouble(x["AMOUNT"] == DBNull.Value ? 0 : x["AMOUNT"]));
如果这是给您带来问题的线路。
关于c# - 如何检查 Linq 查询结果中的 DBNull 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711675/