【问题标题】:LINQ for sum data in DataView group by column results error?LINQ for sum data in DataView group by column 结果错误?
【发布时间】:2011-07-04 07:28:26
【问题描述】:

我收到以下错误:

指定的演员表无效

在错误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);
            }

【问题讨论】:

  • Mb 你的row.Field&lt;DateTime&gt;("DATE") 不是DateTime 类型?
  • 关于 _Hdt 是什么或 _Hdt 包含什么的任何信息?
  • 也许你应该在 group by 子句之前检查 DbNull.Value 的“DATE”

标签: c# .net linq group-by


【解决方案1】:

检查数据库列类型是否真的与 DateTime 兼容,以及表中该列是否包含 Null 值。

Null 不能转换为 DateTime。

【讨论】:

    【解决方案2】:

    试试

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

    row.Field["DATE"] as DateTime?
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 2021-05-09
      相关资源
      最近更新 更多