循环通过数据表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
不知道这是否有帮助,但它是一个我无法控制的存储过程。 tmpCoupon已经是一个十进制值。是的,我试图添加TENDER_AMT的值,其中TEND_POS_ID = 8。循环访问DataTable并通过Debug.Print打印值,但是如何将它们(添加)一起添加。 – iDev 2013-05-01 19:01:31
是的,上面的代码执行加法'tmpCoupon + ='但是,它是一个小数点,我需要修复答案。 – Steve 2013-05-01 19:03:56
谢谢,我知道我之前就是这样试过的。它现在有效。 – iDev 2013-05-01 19:13:02