2012-03-14 3 views
0

У меня 2 DataTable Dt и СД2слияния 2 DataTable

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 = дт + 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 от Microsoft имеет пример того, как сделать это

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

Если дт и СД2 являются DataTables, вы можете использовать DataTable слияния.

DataTable dt3 = dt.Copy() 
dt3.Merge(dt2, false, MissingSchemaAction.Ignore) 
Смежные вопросы