循环数据表vb

时间:2013-05-01 18:34:32

标签: vb.net visual-studio-2010 datatable

我正在尝试遍历一个具有多个约束值的数据表。如何保留第一个值并将符合我约束条件的所有其他值加在一起。

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

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,则需要添加TENDER_AMT的值,其中TEND_POS_ID中的值为8.如果是这种情况,您可以使用Select方法DataTable

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

但是,请记住,这种工作(SUM由另一列进行分组)通常可以通过您提交给数据库的查询更好地解决。像这样:

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