如何将两个数据集表合并为一个 [英] How to combine two DataSet Tables into one

查看:289
本文介绍了如何将两个数据集表合并为一个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试如上所述将两个 DataSet.tables 组合到一个表中。我想知道是否有可能这样做。我调用了存储过程,它返回了我将它们设置到表中的值。 (全部说明如下)。

I am attempting to do as stated above combing two DataSet.tables into one table. I was wondering if it were possible to do so. I call my stored procedure and it returns my values I set them to a table. (All illustrated below).

尝试过:

在映射部分中添加两个表名(表格,IncomingProductTotals)

Adding both table names in the Mapping section ("Tables", IncomingProductTotals).

在映射部分(表格 ,IncomingProductTotals1) ( Tables,TotalDownTimeResults1)

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);


推荐答案

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

Have you tried the Merge method? 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。您也可以使用它:

edit: Skip is Linq. You can use this too:

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

这篇关于如何将两个数据集表合并为一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆