如何用c#合并多个DataTable对象,并将重复的行连接起来

本文关键字:起来 连接 合并 何用 对象 DataTable | 更新日期: 2023-09-27 17:50:31

你好,我有以下场景:

我有一组查询,将返回一组数据表对象。数据表中只有少数几行、几列是相同的,还有少数几列是每个表唯一的。例如

表1:

Name   | Jan Data  | Feb Data
A      |10         |20
B      |12         |9
表2:

Name   | Mar Data  | Apr Data  | May Data
A      |12         |21         |5
C      |14         |90         |6

现在我想合并这两个数据表对象。但在合并时,有一些名称,如A,这对表和数据都是通用的。因此,我希望输出如下:

Name   | Jan Data  | Feb Data  | Mar Data  | Apr Data  | May Data
A      |12         |21         |5          | 45        |52 
B      | 0         | 0         |           |62         |21
C      |14         |90         |6          |63         |42
当按名称分组时,生成的表将具有每行值的总和。(我没有费心计算这里的道歉)

你能给我建议一个如何做到这一点的方法吗?

我使用c# 2.0

如何用c#合并多个DataTable对象,并将重复的行连接起来

我将编写另一个查询来组合这两个查询并返回我想要的结果。您所描述的是关系数据库和SQL的用途。除非万不得已,否则我不会在代码中这么做。

如果你能在SQL视图中做到这一点,那可能是你最好的结果。

如果你不能这样做,我相信你会得到你想要的结果。合并

在代码中看起来像:

private DataTable CombineTables(DataSet ds)
{
return New DataTable = ds.Tables(0).Merge(ds.Tables(1),true,MissingSchemaAction.Add);
}