近期开发要做一个报表汇总,DataTable中有N多行数据,其中一部分数据只是数量和金额不一样,需要进行合并统计,但是又只想在前台改动,本人方法如下,如果哪位同志有更好的方法,请共享出来,呵呵
//克隆要统计的表结构
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);//将当前统计表的数据行作为新行,加到克隆表中
}
}
这样的话克隆表中的数据就是我们统计后的数据了。