объединить 2 с датой - PullRequest
       4

объединить 2 с датой

0 голосов
/ 14 марта 2012

У меня есть 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 голосов
/ 14 марта 2012

Если dt и dt2 являются таблицами данных, вы можете использовать объединение данных.

DataTable dt3 = dt.Copy()
dt3.Merge(dt2, false, MissingSchemaAction.Ignore)
0 голосов
/ 14 марта 2012

Может быть, что-то вроде этого:

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 голосов
/ 14 марта 2012

Вы можете использовать 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 };
0 голосов
/ 14 марта 2012

Взгляните на метод DataTable.Merge:

Эта ссылка от Microsoft содержит пример того, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...