代码
//
克隆要统计的表结构
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); // 将当前统计表的数据行作为新行,加到克隆表中
}
}
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); // 将当前统计表的数据行作为新行,加到克隆表中
}
}