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