数据表合并1

时间:2021-08-28 04:36:36

C#中Merge方法实现把不同表结构的表合并成一张表,同时合并数据

以前做评教系统时记得想把2张表结构不同的表合成一张表,当时没找到使用代码如何实现,最后采用了建立视图的方式方法实现.今天解决某个问题时突然看到了Merge方法可以不建立视图就解决我当时的问题,记录下来:

使用Merge方法把2张拥有不同机构的表合成一张表.

有这样2张表:

第1张结构ID,Name   数据(1, "Age ") ‍(2, "Apple ") ‍(3, "Orange ");

第2张表结构ID,Price   数据(1, 10) ‍(2, 6) (3, 7);

想要的表结构:ID,Name,Price   合并后数据(1,"Age",10) (2,"Apple",6) (3,"Orange",7)

怎么将表结构合并同时把数据也合并到表中呢?看下面的例子:

DataTable dt1 = new DataTable();
dt1.Columns.Add( "ID ", typeof(int));
dt1.Columns.Add( "Name ", typeof(string));
dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0]};
dt1.Rows.Add(1, "Age ");
dt1.Rows.Add(2, "Apple ");
dt1.Rows.Add(3, "Orange ");

DataTable dt2 = new DataTable();
dt2.Columns.Add( "ID ", typeof(int));
dt2.Columns.Add( "Price ", typeof(decimal));
dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
dt2.Rows.Add(1, 10);
//dt2.Rows.Add(2, 6);
dt2.Rows.Add(3, 7);

DataTable dt3 = dt1.Copy();
dt3.Merge(dt2);//也可以:dt1.Merge(dt2);DataTable   dt3=dt1.Copy();

我的这种解决方式显然比这个问题的最佳答案更优雅和简洁:

http://zhidao.baidu.com/question/48304907.html