我正在使用下面的代码并尝试按货币和代码进行分组。之后我尝试循环结果集。
但问题是在循环结果时,最后我在 for every 语句上得到以下异常:
对象不能从 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());
}
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。
就像是
amount = grp.Sum(x => Convert.ToDouble(x["AMOUNT"] == DBNull.Value ? 0 : x["AMOUNT"]));
Run Code Online (Sandbox Code Playgroud)
如果那是给您带来问题的线路。