2012-03-14 135 views
0

我有2个数据表dt和DT2合并2数据表

var dt = MultiCheckCombo3.GetAllChechedBox(); 

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

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

如何连接这些表? DT3 = DT + DT2

回答

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

看一看的DataTable.Merge方法:

This link从微软的如何做到这一点

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

如果dt和DT2的数据表,你可以使用数据表合并。

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