Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am using the below code and trying to group by Currency and Code. After this I am trying to loop through the result set.

But the issue is while looping through the results, at the end I am getting the below exception on the for each statement:

Object cannot be cast from DBNull to other types.

    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());
    }

Please help me to resolve this issue.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
919 views
Welcome To Ask or Share your Answers For Others

1 Answer

Something like

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

If that is the line that is giving you the problem.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...