在单个数据表中合并数据集表
本文关键字:数据集 合并 单个 数据表 | 更新日期: 2023-09-27 18:17:36
我有一个数据集,其中有许多类似的表。我需要将所有数据表合并到一个表中。对于这个例子;我需要一个20行的数据表。我该怎么做呢?
DataSet SampleDS = new DataSet();
DataTable SampleTbl1 = new DataTable();
SampleTbl1.Columns.Add("Product", typeof(string));
SampleTbl1.Columns.Add("Value", typeof(int));
for (int i = 0; i < 10; i++)
{
SampleTbl1.Rows.Add("Product " + i, i);
}
SampleDS.Tables.Add(SampleTbl1);
DataTable SampleTbl2 = new DataTable();
SampleTbl2.Columns.Add("Product", typeof(string));
SampleTbl2.Columns.Add("Value", typeof(int));
for (int i = 0; i < 10; i++)
{
SampleTbl2.Rows.Add("Product " + i, i*2);
}
SampleDS.Tables.Add(SampleTbl2);
您可以创建一个新的DataTable,然后将两个表的行导入到新表中。
DataTable t = new DataTable();
t.Columns.Add("Product", typeof(string));
t.Columns.Add("Value", typeof(int));
foreach(DataTable table in SampleDS.Tables)
{
if(table != null && table.Rows.Count > 0)
{
for(int i = 0; i < table.Rows.Count; i ++)
t.ImportRow(table.Rows[i]);
}
}
HTH .
尝试使用LINQ
var table = SampleDS.Tables[0].AsEnumerable();
for (var ii = 1; ii < SampleDS.Tables.Count; ii++) {
table = table.Concat(SampleDS.Tables[ii].AsEnumerable());
}