两个结构相同datatable进行合并

时间:2021-07-04 16:22:40
有个两datatable1,datatable2 表结构一样
,我想合并成一个newdatatable,
名称,规格型号相同时“数量”合计

10 个解决方案

#1


Table.Merge();

#2


能说详细点吗

#3


参考http://blog.csdn.net/educast/article/details/3341620

#4


 public DataTable GetAllDataTable(DataSet ds)
{
 DataTable newDataTable = ds.Tables[0].Clone(); //创建新表 克隆以有表的架构。
object[] objArray = new object[newDataTable.Columns.Count]; //定义与表列数相同的对象数组 存放表的一行的值。
 for (int i = 0; i < ds.Tables.Count; i++)
 {
for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
{
ds.Tables[i].Rows[j].ItemArray.CopyTo(objArray, 0); //将表的一行的值存放数组中。
newDataTable.Rows.Add(objArray); //将数组的值添加到新表中。
}
}
return newDataTable; //返回新表。
}

#5


相同产品名称,规格型号的数据只显示一条,数量相加就可以

#6


用Linq或者自己先排序后循环遍历相加。Merge方法肯定不行,那个是覆盖,不能相加,而蝶恋花雨的方法更荒唐,是在复制一张新表,答非所问。

#7


Linq 吧!
.Merge不是覆盖麽?
4楼的复制新表。
不要误人子弟呀!

#8


先克隆一个新表结构
然后一次性merge第一个Table,
然后再循环添加第二个Table,判断之前的Table里有无相同的记录,如果有,计算值

#9


DataTable有分组汇总功能

可以将两个DataTable先合在一起,然后再分组汇总一下

#10


一般这些事情,应该放在数据库做.而且实现起来很方便,如果硬要是使用dataTable内存表 分析出来,会比较麻烦而且效率没有前者高.

#1


Table.Merge();

#2


能说详细点吗

#3


参考http://blog.csdn.net/educast/article/details/3341620

#4


 public DataTable GetAllDataTable(DataSet ds)
{
 DataTable newDataTable = ds.Tables[0].Clone(); //创建新表 克隆以有表的架构。
object[] objArray = new object[newDataTable.Columns.Count]; //定义与表列数相同的对象数组 存放表的一行的值。
 for (int i = 0; i < ds.Tables.Count; i++)
 {
for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
{
ds.Tables[i].Rows[j].ItemArray.CopyTo(objArray, 0); //将表的一行的值存放数组中。
newDataTable.Rows.Add(objArray); //将数组的值添加到新表中。
}
}
return newDataTable; //返回新表。
}

#5


相同产品名称,规格型号的数据只显示一条,数量相加就可以

#6


用Linq或者自己先排序后循环遍历相加。Merge方法肯定不行,那个是覆盖,不能相加,而蝶恋花雨的方法更荒唐,是在复制一张新表,答非所问。

#7


Linq 吧!
.Merge不是覆盖麽?
4楼的复制新表。
不要误人子弟呀!

#8


先克隆一个新表结构
然后一次性merge第一个Table,
然后再循环添加第二个Table,判断之前的Table里有无相同的记录,如果有,计算值

#9


DataTable有分组汇总功能

可以将两个DataTable先合在一起,然后再分组汇总一下

#10


一般这些事情,应该放在数据库做.而且实现起来很方便,如果硬要是使用dataTable内存表 分析出来,会比较麻烦而且效率没有前者高.