Asp.net 将表从3数据集合并到1
我正在从数据库加载三个数据集,其中Asp.net 将表从3数据集合并到1,asp.net,dataset,asp.net-4.0,Asp.net,Dataset,Asp.net 4.0,我正在从数据库加载三个数据集,其中 Dataset 1 > Table 1 > 10 rows Dataset 2 > Table 1 > 3 rows Dataset 3 > Table 1 > 5 rows (所有数据集具有相同的列名、相同的数据类型)实际上它们包含基于不同选择条件的数据) 现在我想把这三个数据集合并成这样一个数据集 数据集4>表1>18行 请帮助我如何做试试这个方法。类似于此(未经测试): C#: VB.NET: dataset1.Me
Dataset 1 > Table 1 > 10 rows
Dataset 2 > Table 1 > 3 rows
Dataset 3 > Table 1 > 5 rows
(所有数据集具有相同的列名、相同的数据类型)实际上它们包含基于不同选择条件的数据)
现在我想把这三个数据集合并成这样一个数据集
数据集4>表1>18行
请帮助我如何做试试这个方法。类似于此(未经测试):
C#:
VB.NET:
dataset1.Merge(dataset2)
Dim dataset4 As New DataSet = dataset1.Merge(dataset3)
试试这个方法。类似于此(未经测试):
C#:
VB.NET:
dataset1.Merge(dataset2)
Dim dataset4 As New DataSet = dataset1.Merge(dataset3)
一种(灵活的)方法是使用
在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
一种(灵活的)方法是使用
在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);
如果希望合并两个数据集和所有包含的表,可以使用Tim的建议,或者可以对特定的表执行类似的操作
DataTable table1 = new DataTable();
DataTable table2 = new DataTable();
DataTable table3 = new DataTable();
table1.Merge(table2);
table1.Merge(table3);
为什么要用它来代替
DataTable.Merge
?我认为LINQ更灵活,所以如果需要添加其他条件,那么Merge
可能不再是一个选项,您必须放弃这种方法。对于OP的要求,这两种方法都是可行的。很抱歉。我错过了底线中的工会。这是一个很好的方法。为什么要使用此方法而不是DataTable.Merge
?我认为LINQ更灵活,因此如果需要添加其他条件,则Merge
可能不再是一个选项,您必须放弃此方法。对于OP的要求,这两种方法都是可行的。很抱歉。我错过了底线中的工会。这是一个好办法。