2011-07-04 40 views
0

我收到以下错误:LINQ for DataView中的总和数据按列结果错误?

Specified cast is not valid

以下行错误row.Field<DateTime>("DATE")后强调这一点。

这是我的代码:

var query = from row in _Hdt.AsEnumerable() 
      group row by row.Field<DateTime>("DATE") into grp 
      orderby grp.Key 
      select new 
      { 
       Date = grp.Key, 
       Sum = grp.Sum(r => r.Field<decimal>("KW")) 
      }; 

      foreach (var grp in query) 
      { 
       Console.WriteLine("{0}\t{1}", grp.Date, grp.Sum); 
      } 
+3

MB你'row.Field ( “DATE”)'是'型的DateTime'不? –

+0

关于_Hdt是什么或_Hdt包含什么的任何信息? – Bastardo

+0

可能应该在分组旁by DbNull.Value检查“DATE” – Alexander

回答

0

检查数据库列类型为DateTime真正兼容,如果表包含在该列Null值。

无法将Null转换为DateTime。

0

尝试

row.Field<DateTime?>("DATE") 

row.Field["DATE"] as DateTime?