我正在尝试计算数据网格中一行的总数,并提出以下代码。
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim dblQty As Double
Dim dblPrice As Double
For index As Integer = 0 To grdNewInvoice.RowCount - 1
dblQty += Convert.ToDouble(grdNewInvoice.Rows(index).Cells(1).Value)
dblPrice += Convert.ToDouble(grdNewInvoice.Rows(index).Cells(2).Value)
grdNewInvoice.Rows(index).Cells(3).Value = dblPrice * dblQty
Next
End Sub
如果我只有一行,那么效果很好。如果我有第二行,它会添加所有列的值,如下所示。第1列有一个组合框,用户可以更改数量的值,我希望每次用户更改值时重新计算总行数。但是,它没有正确计算,如果我更改任何行上的值,它会将所有行添加到一起,如下所示:
我将葡萄酒的价值改为4,产生错误的总数
答案 0 :(得分:1)
删除+=
,否则您会聚合qty
和每price
。
9 * $17 = $153
9 = 5 + 4, $17 = $7.00 + $10.00
代码应该是:
For index As Integer = 0 To grdNewInvoice.RowCount - 1
dblQty = Convert.ToDouble(grdNewInvoice.Rows(index).Cells(1).Value)
dblPrice = Convert.ToDouble(grdNewInvoice.Rows(index).Cells(2).Value)
grdNewInvoice.Rows(index).Cells(3).Value = dblPrice * dblQty
Next