合并2个数据表

时间:2012-03-14 13:58:54

标签: c# asp.net datatable

我有2个Datatable dt和dt2

 var dt = MultiCheckCombo3.GetAllChechedBox();

 var dt2 =manager.GetAllStudents(student_id, classid);

在第一个表中,dt是两列“id_staff”和“name_staff” 在第二个表中有几列,但其中2列重复“id_staff”和“name_staff” 我想创建一个新的DataTable,其字段为“id_staff”和“name_staff”,通用DataTable dt和dt2

如何加入这些表格? dt3 = dt + dt2

4 个答案:

答案 0 :(得分:0)

查看DataTable.Merge方法:

来自Microsoft的

This link有一个如何执行此操作的示例

答案 1 :(得分:0)

也许是这样的:

var dt=new DataTable();
dt.Columns.Add("id_staff",typeof(int));
dt.Columns.Add("name_staff",typeof(string));

var dt2=new DataTable();
dt2.Columns.Add("id_staff",typeof(int));
dt2.Columns.Add("name_staff",typeof(string));

dt.Rows.Add(1,"test");
dt2.Rows.Add(2,"test2");

var result= 
(
    from datatable1 in dt.AsEnumerable()
    select new
    {
       id_staff=datatable1.Field<int>("id_staff"),
       name_staff=datatable1.Field<string>("name_staff")
    }
).Concat
(
    from datatable2 in dt2.AsEnumerable()
    select new
    {
       id_staff=datatable2.Field<int>("id_staff"),
       name_staff=datatable2.Field<string>("name_staff")
    }
 );

答案 2 :(得分:0)

您可以使用Linq加入这两个表。请参阅以下example

文章中的代码:

var innerGroupJoinQuery =
    from category in categories
    join prod in products on category.ID equals prod.CategoryID into prodGroup
    select new { CategoryName = category.Name, Products = prodGroup };

答案 3 :(得分:0)

如果dt和dt2是DataTables,则可以使用数据表合并。

DataTable dt3 = dt.Copy()
dt3.Merge(dt2, false, MissingSchemaAction.Ignore)