如何合并数据集中的数据表? Asp.net C# [英] How to merge the datatable in dataset? Asp.net C#

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

问题描述

我有一个excel文档和多个sheet.sheets有很多列,row.i将文档上传到我的项目中。多个工作表使用for循环绑定到表(工作表名称设置为表名)。绑定我将表名更改为source1,source2,source3(三张)。现在如何在单个表(source1)中绑定(合并)三个表。



我尝试过:



i试图将所有表重命名为同名,但不允许重复表。如何绑定同一个表。

解决方案

无法将所有数据表名重命名为相同的值。

使用 DataTable.Merge方法 [ ^ ]合并数据集中的所有数据表的数据。



参考这个例子:

假设您的数据集包含3个表格,如下所示

 DataSet dataSetExcel =  new  DataSet(); 
DataTable dt1 = new DataTable();
dt1.Columns.Add( ID);
dt1.Columns.Add( 名称);
dt1.Rows.Add( 1 一个);

DataTable dt2 = new DataTable();
dt2.Columns.Add( ID);
dt2.Columns.Add( 名称);
dt2.Rows.Add( 2 两个);

DataTable dt3 = new DataTable();
dt3.Columns.Add( ID);
dt3.Columns.Add( 名称);
dt3.Rows.Add( 3 3);
dataSetExcel.Tables.AddRange( new DataTable [] {dt1,dt2,dt3});





尝试将所有数据合并到一个新的DataTable



 DataTable dtFinal =  new  DataTable(); 
for int i = 0 ; i < dataSetExcel.Tables.Count; i ++)
{
if (i == 0
dtFinal = dataSetExcel.Tables [i] .Copy();
else
dtFinal.Merge(dataSetExcel.Tables [i]);
}





或者,您应将表2和表3中的数据合并到表1并删除表2和3



 dataSetExcel.Tables [ 0 ]。合并(dataSetExcel。表[ 1 ]); 
dataSetExcel.Tables [ 0 ]。合并(dataSetExcel.Tables [ 2 ]);
dataSetExcel.Tables.RemoveAt( 1 ); // 重复代码以避免索引异常
dataSetExcel.Tables.RemoveAt( 1 ); // 重复代码以避免索引异常
dataSetExcel.AcceptChanges();


i have one excel document and multiple sheets.sheets have many columns and row.i upload the document into my project.and the multiple sheets is bind to tables(sheet name is set as table name) using for loop.after the bind i change the table name to source1,source2,source3 (three sheets). Now how to bind(merge) the three tables in single table (source1).

What I have tried:

i have tried to rename the all tables to same name but the duplicate table is not allowed.how to bind the same table.

解决方案

Its not possible to rename all the datatable names to same value.
use DataTable.Merge Method [^] to merge all the datatable's data from the dataset.

refer this example:
assuming your dataset contains 3 tables as below

DataSet dataSetExcel = new DataSet();
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID");
dt1.Columns.Add("Name");
dt1.Rows.Add(1, "one");

DataTable dt2 = new DataTable();
dt2.Columns.Add("ID");
dt2.Columns.Add("Name");
dt2.Rows.Add(2, "two");

DataTable dt3 = new DataTable();
dt3.Columns.Add("ID");
dt3.Columns.Add("Name");
dt3.Rows.Add(3, "three");
dataSetExcel.Tables.AddRange(new DataTable[] {dt1,dt2,dt3 });



try like this to merge all the data to a new DataTable

DataTable dtFinal = new DataTable();
           for (int i = 0; i < dataSetExcel.Tables.Count; i++)
           {
               if (i == 0)
                   dtFinal = dataSetExcel.Tables[i].Copy();
               else
                   dtFinal.Merge(dataSetExcel.Tables[i]);
           }



or, you shall merge the data from sheet 2 and sheet 3 to sheet 1 and delete the sheet 2 and 3

dataSetExcel.Tables[0].Merge(dataSetExcel.Tables[1]);
          dataSetExcel.Tables[0].Merge(dataSetExcel.Tables[2]);
          dataSetExcel.Tables.RemoveAt(1); //  duplicate code to avoid index exception
          dataSetExcel.Tables.RemoveAt(1); //  duplicate code to avoid index exception
          dataSetExcel.AcceptChanges();


这篇关于如何合并数据集中的数据表? Asp.net C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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