日期:2014-05-19  浏览次数:20898 次

DataSet中DataTable重复行删除和求和问题
我从2个不同的数据库(Oralce和MS   SQL)里查询得到1个数据集的2个表
我把这个数据集的2个表合并在一起得到一个新表,现在这个新表的结构是这样的:
DataTable   MyTable   =   ds.Tables[2];   //ds为数据集
Item       Description                         Uom     Quantity
a1           a1 's   description               EA       10.22  
a2           a2 's   description               EA       11.00  
a3           a3 's   description               KG       25.00  
a4           a4 's   description               KG       0.23  
a5           a5 's   description               KG       1.00
a1           a1 's   description               EA       0.25
a1           a1 's   description               EA       56.55  
a3           a3 's   description               KG       23.65
a4           a4 's   description               KG       25.36
我现在想把这个MyTable中字段Item重复行去掉,但是又要把Quantity的和加起来
即将MyTable变为(或者填充到ds的另一个表使变为):
Item       Description                         Uom     Quantity
a1           a1 's   description               EA       67.02     \\(10.22   +   0.25   +   56.55)
a2           a2 's   description               EA       11.00      
a3           a3 's   description               KG       48.65       \\(25.00   +   23.65)
a4           a4 's   description               KG       25.59           \\(0.23   +   25.36)
a5           a5 's   description               KG       1.00        

请哪位高手帮忙解决下,不胜感激!

------解决方案--------------------
一定有这样看来只有遍历表,对比计算了,将生成的结果放到 一个DataTable里面去,用这个DataTable 来做数据源绑定
------解决方案--------------------
for(int i=0;i <ds.Tables[ "T1 "].Rows.Count;i++)
{
object tempitem=ds.Tables[ "T1 "].Rows[i][0];
for(int j=i;j <ds.Tables[ "T1 "].Rows.Count;j++)
{
if(tempitem == ds.Tables[ "T1 "].Rows[j][0])
{
ds.Tables[ "T1 "].Rows[i][3] = (int)ds.Tables[ "T1 "].Rows[i][3] + (int)ds.Tables[ "T1 "].Rows[j][3];
ds.Tables[ "T1 "].Rows.RemoveAt(j);
}