循环通过数据表vb

问题描述:

我想循环通过一个数据表,我的约束有多个值。我如何保留第一个值并将所有符合我的约束条件的其他值相加。循环通过数据表vb

For i = 0 To ds.Tables(0).Rows.Count - 1 

      If ds.Tables(0).Rows(i).Item("TEND_POS_ID") = 8 Then 

       'This only returns the last value 
       'Value 1 = 2 
       'Value 2 = 7.5 
       'should = 9.5 but it is showing 7.5     

      tmpCoupon = ds.Tables(0).Rows(i).Item("TENDER_AMT") 
      End If 
     Next 
     txtCoupon.Text = tmpCoupon 

如果我正确理解你的问题,你需要添加的TENDER_AMT其中TEND_POS_ID的值是8的值。如果是这样的话,你可以使用数据表

Dim rows = ds.Tables(0).Select("TEND_POS_ID = 8") 
for each r in rows 
    tmpCoupon += Convert.ToDecimal(r("TENDER_AMD")) 
Next 
Select方法

但是,请注意,您提交给数据库的查询通常可以更好地解决此类工作(SUM列按另一列分组)。这样的事情:

SELECT TEND_POS_ID, SUM(TENDER_AMD) FROM Table1 GROUP BY TEND_POS_ID 
+0

不知道这是否有帮助,但它是一个我无法控制的存储过程。 tmpCoupon已经是一个十进制值。是的,我试图添加TENDER_AMT的值,其中TEND_POS_ID = 8。循环访问DataTable并通过Debug.Print打印值,但是如何将它们(添加)一起添加。 – iDev 2013-05-01 19:01:31

+0

是的,上面的代码执行加法'tmpCoupon + ='但是,它是一个小数点,我需要修复答案。 – Steve 2013-05-01 19:03:56

+0

谢谢,我知道我之前就是这样试过的。它现在有效。 – iDev 2013-05-01 19:13:02