C# DataTable中相同的数据行合并计算

本文介绍了一种通过克隆表结构并遍历源表数据来实现药品销售数据统计的方法。该方法利用C#语言实现,具体步骤包括:首先克隆要统计的表结构并命名为dtYpxx,然后遍历要统计的表的每一行,通过药品代码匹配克隆表中的数据,若存在则累加金额,否则将数据导入克隆表。

ContractedBlock.gifExpandedBlockStart.gif代码
//克隆要统计的表结构

DataTable dtYpxx
= dsMain.Tables[0].Clone();

dtYpxx.TableName
= "dtYpxx";

//遍历要统计的表的行

foreach (DataRow dr in dsMain.Tables[0].Rows)

{

DataRow[] drs
= dtYpxx.Select("药品代码='" + dr["药品代码"].ToString() + "'");//在克隆表中查询和要统计表药品代码系统的数据,这里第一次进入肯定是查不到的,因为此时克隆表中的没有数据

//如果查出来数据的话,则说明要统计表中的数据在克隆表中存在了,则对对应的数据进行统计

if (drs.Length > 0)

{

drs[
0]["金额"] = Convert.ToDecimal(drs[0]["金额"]) + Convert.ToDecimal(dr["金额"]);//将金额累加

}

else

{

dtYpxx.ImportRow(dr);
//将当前统计表的数据行作为新行,加到克隆表中

}

}

 

转载于:https://www.cnblogs.com/David_Yang/archive/2010/05/17/1737447.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值