如何检查 Linq 查询结果中的 DBNull 值

Ull*_*lan 5 c# linq datatable

我正在使用下面的代码并尝试按货币和代码进行分组。之后我尝试循环结果集。

但问题是在循环结果时,最后我在 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)

请帮我解决这个问题。

Sam*_*Sam 5

就像是

 amount = grp.Sum(x => Convert.ToDouble(x["AMOUNT"] == DBNull.Value ? 0 : x["AMOUNT"]));
Run Code Online (Sandbox Code Playgroud)

如果那是给您带来问题的线路。