我正在尝试遍历一个具有多个约束值的数据表。如何保留第一个值并将符合我约束条件的所有其他值加在一起。
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
答案 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