如何将两个数据集表成一个(How to combine two DataSet Tables int

2019-09-26 16:34发布

我试图做上述梳理两个表示DataSet.tables到一个表。 我在想,如果有可能这样做。 我打电话给我的存储过程,并返回我的价值观我将它们设置为一个表。 (下面的所有示出)。

尝试:

在添加映射部分都表名("Tables", IncomingProductTotals)

在映射部分将两个为一个表("Tables", IncomingProductTotals1) ("Tables", TotalDownTimeResults1)

做大量的研究最让我能找到的是在SQL连接表。

SqlCommand cmd = new SqlCommand("L_GetTimeTotals", conn);
cmd.Parameters.Add("@startTime", SqlDbType.DateTime, 30).Value = RadDateTimePicker2.SelectedDate;
cmd.Parameters.Add("@endTime", SqlDbType.DateTime, 30).Value = RadDateTimePicker3.SelectedDate;
cmd.CommandType = CommandType.StoredProcedure;

SqlDataAdapter da = new SqlDataAdapter(cmd);

var ds = new DataSet();

ds.Tables.Add("IncomingProductTotals");
ds.Tables.Add("IncomingProductTotalsA");
ds.Tables.Add("IncomingProductTotalsB");
ds.Tables.Add("IncomingProductTotals1");
ds.Tables.Add("IncomingProductTotalsA1");
ds.Tables.Add("IncomingProductTotalsB1");

da.TableMappings.Add("Table", "IncomingProductTotals");
da.TableMappings.Add("Table1", "IncomingProductTotalsA");
da.TableMappings.Add("Table2", "IncomingProductTotalsB");
da.TableMappings.Add("Table3", "IncomingProductTotals1");
da.TableMappings.Add("Table4", "IncomingProductTotalsA1");
da.TableMappings.Add("Table5", "IncomingProductTotalsB1");

da.Fill(ds);

ds.Tables.Remove("IncomingProductTotalsA");
ds.Tables.Remove("IncomingProductTotalsB");
ds.Tables.Remove("IncomingProductTotalsA1");
ds.Tables.Remove("IncomingProductTotalsB1");

ExcelHelper.ToExcel(ds, "TimeTotals.xls", Page.Response);

Answer 1:

您是否尝试过合并的方法? http://msdn.microsoft.com/en-us/library/system.data.datatable.merge(v=vs.110).aspx

foreach(var t in ds.Tables.Skip(1))
{
    t.Merge(ds.Tables[0]);
}

编辑:跳过是Linq的。 您可以使用此过:

for(int i = 1; i < ds.Tables.Count - 1; i++) 
    ds.Tables[i].Merge(ds.Tables[0]);


文章来源: How to combine two DataSet Tables into one
标签: c# dataset