Объединение таблицы из 3 наборов данных в 1 - PullRequest
0 голосов
/ 24 октября 2011

Я загружаю три набора данных из базы данных, которая имеет

Dataset 1 > Table 1 > 10 rows
Dataset 2 > Table 1 > 3 rows
Dataset 3 > Table 1 > 5 rows

(все наборы данных имеют одинаковое имя столбца, один и тот же тип данных) на самом деле они содержат данные, основанные на различных условиях выбора), теперь я хочу объединить всетри набора данных в один, как это

Набор данных 4> Таблица 1> 18 строк

Пожалуйста, помогите, как я могу это сделать

Ответы [ 3 ]

3 голосов
/ 24 октября 2011

Попробуйте метод DataSet.Merge (DataSet) . Как то так (не проверено):

C #:

dataset1.Merge(dataset2);

DataSet dataset4 = dataset1.Merge(dataset3);

VB.NET:

dataset1.Merge(dataset2)

Dim dataset4 As New DataSet = dataset1.Merge(dataset3)    
1 голос
/ 24 октября 2011

Вы можете использовать предложение Тима, если вы хотите объединить два набора данных и все содержащие таблицы, или вы можете сделать что-то подобное для определенных таблиц.

DataTable table1 = new DataTable();
DataTable table2 = new DataTable();
DataTable table3 = new DataTable();

table1.Merge(table2);
table1.Merge(table3);
1 голос
/ 24 октября 2011

Один (гибкий) способ использует Enumerable.Union .

В VB.NET:

Dim tblMerged = tbl1.AsEnumerable _
                    .Union(tbl2.AsEnumerable) _
                    .Union(tbl3.AsEnumerable) _
                    .CopyToDataTable()

Проверено с:

Dim tbl1 As New DataTable
Dim tbl2 As New DataTable
Dim tbl3 As New DataTable
Dim col1_1 As New DataColumn("Col1", GetType(String))
Dim col2_1 As New DataColumn("Col1", GetType(String))
Dim col3_1 As New DataColumn("Col1", GetType(String))

tbl1.Columns.Add(col1_1)
tbl2.Columns.Add(col2_1)
tbl3.Columns.Add(col3_1)
For i As Int32 = 1 To 10
    Dim row = tbl1.NewRow
    row(0) = "Tbl1_Value" & i
    tbl1.Rows.Add(row)
Next
For i As Int32 = 1 To 20
    Dim row = tbl2.NewRow
    row(0) = "Tbl2_Value" & i
    tbl2.Rows.Add(row)
Next
For i As Int32 = 1 To 50
    Dim row = tbl3.NewRow
    row(0) = "Tbl3_Value" & i
    tbl3.Rows.Add(row)
Next

Dim tblMerged = tbl1.AsEnumerable.Union(tbl2.AsEnumerable).Union(tbl3.AsEnumerable).CopyToDataTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...