合并2数据表

本文关键字:数据表 合并 | 更新日期: 2023-09-27 18:27:58

我有两个数据表dt和dt2

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

在第一个表dt中有两列"id_staff"answers"name_staff第二个表中有几列,但其中有两列重复"id_staff"answers"name_staff我想用字段"id_staff"answers"name_staff"创建一个新的DataTable公共DataTable dt和dt2

这些桌子是怎么连在一起的?dt3=dt+dt2

合并2数据表

您可以使用Linq来连接这两个表。请参见以下示例。

文章中的代码:

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 };

看看DataTable.Merge方法:

这个来自微软的链接有一个如何进行的例子

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

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

也许是这样的:

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")
    }
 );