无法将类型隐式转换
'System.Collections.Generic.List<AnonymousType#1>'
为'System.Collections.Generic.IEnumerable<System.Data.DataRow>'
. 存在显式转换(您是否缺少演员表?)
我有两个数据表叫做Data2,Data3,我想在分组后将数据输入到Data3中。如何修改我的代码?
IEnumerable<DataRow> temp = (from p in Data2.AsEnumerable()
group p by new
{
ID = p.Field<string>("ID"),
StyleID = p.Field<string>("StyleID"),
BrandID = p.Field<string>("BrandID"),
SeasonID = p.Field<string>("SeasonID"),
Article = p.Field<string>("Article"),
PatternCode = p.Field<string>("PatternCode")
} into g
select new
{
ID = g.Key.ID,
StyleID = g.Key.StyleID,
BrandID = g.Key.BrandID,
SeasonID = g.Key.SeasonID,
Article = g.Key.Article,
PatternCode = g.Key.PatternCode,
QTY = g.Sum(p => p.Field<int>("QTY"))
}).ToList();
Data3 = temp.CopyToDataTable();
投影:
select new
{
ID = g.Key.ID,
StyleID = g.Key.StyleID,
BrandID = g.Key.BrandID,
SeasonID = g.Key.SeasonID,
Article = g.Key.Article,
PatternCode = g.Key.PatternCode,
QTY = g.Sum(p => p.Field<int>("QTY"))
}
意味着您正在每行创建一个匿名类型的实例(由编译器生成的类);没有一个DataRow
。所以当你这样做时.ToList()
,你会得到一个List<T>
whereT
是匿名类型。你可以var temp = ...
到指定列表中的东西,但它仍然不会是什么关系DataRow
。您需要(其中之一):
DataTable
/ DataRow
(说真的,它们很糟糕;几乎其他任何东西都更可取)DataTable
通过循环对象、创建行和分配值来手动填充本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句