日期:2014-05-18  浏览次数:20563 次

合并两个datatable
合并两个datatable
A B C D
------------------------------
1 2 3 AA
1 2 5 BB
2 3 4 ADF
2 2 3 ADF


A B C De
----------------------------------
1 2 3 AAddd
1 2 5 BBddd
2 3 4 ADFdd
2 2 3 AdDFdd
8 8 9 9999

合并后效果:
A B C D D
---------------------------------------------
1 2 3 AAddd AA
1 2 5 BBddd BB
2 3 4 ADFdd ADF
2 2 3 AdDFdd ADF


------解决方案--------------------
试下这个:

C# code
DataTable dt1 = new DataTable();

dt1.Columns.Add("A", typeof(int));
dt1.Columns.Add("B", typeof(int));
dt1.Columns.Add("C", typeof(int));
dt1.Columns.Add("D", typeof(string));
dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0], dt1.Columns[1], dt1.Columns[2] };
dt1.Rows.Add(1, 2,3, "AA");
dt1.Rows.Add(1, 2,5, "BB");
dt1.Rows.Add(2, 3, 4, "ADF");
dt1.Rows.Add(2, 2, 3, "ADF");

DataTable dt2 = new DataTable();
dt2.Columns.Add("A", typeof(int));
dt2.Columns.Add("B", typeof(int));
dt2.Columns.Add("C", typeof(int));
dt2.Columns.Add("De", typeof(string));
dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0], dt2.Columns[1], dt2.Columns[2] };
dt2.Rows.Add(1, 2, 3, "AAddd");
dt2.Rows.Add(1, 2, 5, "BBddd ");
dt2.Rows.Add(2, 3, 4, "ADFdd");
dt2.Rows.Add(2, 2, 3, "AdDFdd");
dt2.Rows.Add(8, 8, 9, "999");
DataTable dt3 = dt1.Copy();
dt3.Merge(dt2);