C#如何将两个DataTable Row合并为一行
Posted
技术标签:
【中文标题】C#如何将两个DataTable Row合并为一行【英文标题】:C# How do i merge two DataTable Row into one row 【发布时间】:2021-01-10 01:10:00 【问题描述】:我有一个如下所示的数据表,它是从数据库中填充的
我怎样才能使结果如下所示
抱歉我的解释不好,非常感谢
【问题讨论】:
做一个 GROUP BY.. 问题是,这个数据表我已经手动从另一个数据表中插入行,有没有用C#来di呢? @KuHan 我为C#添加了answer,看看吧。 【参考方案1】:你需要这样写:
Select
PN,
[Description],
Sum(January) AS January,
Sum(February) AS February,
Sum(March) AS March,
Sum(April) AS April
FROM [YourTable]
GROUP BY
PN,
[Description]
【讨论】:
问题是,这个数据表我已经从另一个数据表手动插入行,有没有用C#来di呢?【参考方案2】:如果您想使用 Datatable 而不是 SQL,您可以使用:
dt = dt.AsEnumerable()
.GroupBy(r => new PN = r["PN"], Description = r["Description"])
.Select(g =>
var row = dt.NewRow();
row["PN"] = g.Key.PN;
row["Description"] = g.Key.Description;
row["January"] = g.Sum(r => r.Field<int>("January"));
row["February"] = g.Sum(r => r.Field<int>("February"));
row["March"] = g.Sum(r => r.Field<int>("March"));
row["April"] = g.Sum(r => r.Field<int>("April"));
return row;
)
.CopyToDataTable();
见:How do I use SELECT GROUP BY in DataTable.Select(Expression)?
【讨论】:
以上是关于C#如何将两个DataTable Row合并为一行的主要内容,如果未能解决你的问题,请参考以下文章
C#如何在已经有数据的datatable里添加一个新列,并且将一个数组里的数据放入新列