我從具有合併表3數據集1
Dataset 1 > Table 1 > 10 rows
Dataset 2 > Table 1 > 3 rows
Dataset 3 > Table 1 > 5 rows
數據庫中裝載3個集(所有數據集具有相同的列名,相同的數據類型)實際上它們包含的數據根據不同的選擇條件) 現在我想所有這三個數據集中合併成一個像這樣
數據集4>表1> 18行
請幫助如何ç我這樣做
我從具有合併表3數據集1
Dataset 1 > Table 1 > 10 rows
Dataset 2 > Table 1 > 3 rows
Dataset 3 > Table 1 > 5 rows
數據庫中裝載3個集(所有數據集具有相同的列名,相同的數據類型)實際上它們包含的數據根據不同的選擇條件) 現在我想所有這三個數據集中合併成一個像這樣
數據集4>表1> 18行
請幫助如何ç我這樣做
嘗試DataSet.Merge Method (DataSet)方法。事情是這樣的(未測試):
C#:
dataset1.Merge(dataset2);
DataSet dataset4 = dataset1.Merge(dataset3);
VB.NET:
dataset1.Merge(dataset2)
Dim dataset4 As New DataSet = dataset1.Merge(dataset3)
一(靈活)的方法是使用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
您可以使用Tim的建議,如果你正在尋找的兩個數據集合並,所有含表,或者你可以爲特定的表格做這樣的事情。
DataTable table1 = new DataTable();
DataTable table2 = new DataTable();
DataTable table3 = new DataTable();
table1.Merge(table2);
table1.Merge(table3);
爲什麼會用這個而不是'DataTable.Merge'? –
在我看來,LINQ更靈活,所以如果你需要添加其他條件'合併'可能不再是一個選項,你必須放棄這種方法。這兩種方法都適用於OP的要求。 –
對不起。我錯過了底線的「聯盟」。這是一個好方法。 –