手机版

将多个数据表的合并成一个新表不同情况分析解决方案

时间:2021-08-04 来源:互联网 编辑:宝哥软件园 浏览:

类型:办公软件大小:35KB语言:中文评分:1.2标签:立即下载有时我们知道了两个数据表一和数据表2,我们希望将它们合并为一个新的数据表(下面的例子中命名为了新数据表),这就分为两种情况:DataTable1和数据表2结构相同、数据表一和数据表2结构不同,下面分别介绍怎么进行合并。

一、数据表一和数据表2结构相同的情况,结构相同我们只需要把两者的数据罗列到一块就可以了

首先初始化相同结构数据表(测试用的)

void initdatatable 1(DataTable dt){ dt .列。添加(“学生_否”);dt .列。添加('学生名');dt .行。添加(' 001 ','六月');dt .划船。添加(' 002 ','张');dt .行。添加(' 003 ','君');} void initdatatable 2(DataTable dt){ dt .列。添加(“学生_否”);dt .列。添加('学生名');dt .行。添加(' 111 ',' ABC ');dt .行。添加(' 222 ',' XYZ ');dt .行。添加(《三三三》,《OPQ》);}

合并方法1:用成排。增加方法

数据表新数据表=数据表1。clone();对象[] obj=新对象[新数据表.列。计数];//添加数据表一的数据for(int I=0;我数据表1。行。计数;i ) { DataTable1 .第[I]行。项目数组。复制到(obj,0);新数据表。行。添加(对象);} //添加数据表2的数据for(int I=0;我数据表2。行。计数;i ) {数据表2 .第[I]行。项目数组。复制到(obj,0);新数据表。行。添加(对象);}

合并方法2:用数据表。导入行方法

//拷贝数据表一的结构和数据数据表新数据表=数据表1。copy();//添加数据表2的数据foreach(数据表2中的数据行dr .行){新数据表。导入行(dr);}

其实添加数据表一的结构和数据有两种方法

//克隆数据表一的结构数据表新数据表=数据表1。clone();对象[] obj=新对象[新数据表.列。计数];//添加数据表一的数据for(int I=0;我数据表1。行。计数;i ) { DataTable1 .第[I]行。项目数组。复制到(obj,0);新数据表。行。添加(对象);}

或者直接用自带的复制方法数据表新数据表=数据表1。copy();二、数据表一和数据表2结构不同相同的情况,我们可以先向新表中添加数据表一的数据,然后再向每行的后面添加添加数据表2的数据,注意两者的行数不一定相同。

首先初始化相同结构数据表(测试用的)

void initdatatable 1(DataTable dt){ dt .列。添加(' student _ no1 ');dt .列。添加(“student _ name 1”);dt .行。添加(' 001 ','六月');dt .划船。添加(' 002 ','张');//dt .行。添加(' 003 ','君');} void initdatatable 2(DataTable dt){ dt .列。添加(' student _ NO2 ');dt .列。添加(“student _ name 2”);dt .行。添加(' 111 ',' ABC ');dt .行。添加(' 222 ',' XYZ ');dt .行。添加(' 222 ',' ASD ');}

(1)先添加第一个表,再添加第二个表

///摘要///将两个列不同(结构不同)的数据表合并成一个新的DataTable////summary///param name=' DataTable 1 '表1/param ///param名称='DataTable2 '表2/param ///param name='DTName '合并后新的表名/param /返回合并后的新表/返回私有数据表单位数据表(数据表数据表1,数据表数据表2,字符串DTName) { //克隆数据表一的结构数据表新数据表=数据表1。clone();for(int I=0;我数据表2。列。计数;i ) { //再向新表中加入数据表2的列结构新数据表。列。添加(数据表2。列[i].列名);}对象[] obj=新对象[新数据表.列。计数];//添加数据表一的数据for(int I=0;我数据表1。行。计数;i ) { DataTable1 .第[I]行。项目数组。复制到(obj,0);新数据表。行。添加(对象);} if (DataTable1 .行数。计数=数据表2。划船。count){ for(int I=0;我数据表2。行。计数;I){ for(int j=0;j数据表2。列。计数;j ) {新数据表.行[I][j]数据表1 .列数]=数据表2。行[i][j].ToString();} } } else { DataRow dr3//向新表中添加多出的几行for(int I=0;我数据表2。行数。计数-数据表1。行。计数;i ) { dr3=新数据表.NewRow();新数据表。行。添加(dr3);} for(int I=0;我数据表2。行。计数;I){ for(int j=0;j数据表2。列。计数;j ) {新数据表.行[I][j]数据表1 .列数]=数据表2。行[i][j].ToString();} } }新数据表.TableName=DTName//设置暗行扫描(暗迹)的名字返回新数据表;

(2)先添加行数多的表。其实我们也可以先判断哪个表的行数多,就先添加哪个表,然后再添加行少的表就可以了。

///摘要///将两个列不同(结构不同)的数据表合并成一个新的DataTable////summary///param name=' DataTable 1 '表1/param ///param名称='DataTable2 '表2/param ///param name='DTName '合并后新的表名/param /返回合并后的新表/返回私有数据表单元数据表2(数据表数据表1,数据表数据表2,字符串DTName){ DataTable new DataTable=new DataTable();if (DataTable1 .行数。计数数据表2。行数。计数){新数据表=填充数据(数据表1,数据表2);} else { new datatable=fill data(datatable 2,datatable 1);}新数据表.TableName=DTName//设置暗行扫描(暗迹)的名字返回新数据表;}私有DataTable FillData(DataTable dt1,DataTable dt2) { //克隆数据表一的结构数据表新数据表=dt1 .clone();for(int I=0;i dt2 .列。计数;i ) { //再向新表中加入数据表2的列结构新数据表。列。添加(dt2 .列[i].列名);}对象[] obj=新对象[新数据表.列。计数];//添加数据表一的数据for(int I=0;i dt1 .行。计数;i ) { dt1 .第[I]行。项目数组。复制到(obj,0);新数据表。行。添加(对象);} for(int I=0;i dt2 .行。计数;I){ for(int j=0;j dt2 .列。计数;j ) {新数据表.行[i][j dt1 .列。计数]=dt2 .行[i][j].ToString();} }返回新数据表}

版权声明:将多个数据表的合并成一个新表不同情况分析解决方案是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。