在datagridview中乘以列值

时间:2018-05-16 07:53:18

标签: vb.net ms-access datagridview calculation

我目前正在制作薪资系统,我正在尝试在列之间进行计算。我试图将常量值乘以名为 PayRate

的列中的值

我目前有两种形式。第一种形式是我勾选所有必要的扣除和收入。完成后,将单击一个按钮,将显示包含datagridview的第二个表单以及员工详细信息和工资率。

这是我的代码:

    Private Sub btnPayroll_Click(sender As Object, e As EventArgs) Handles btnPayroll.Click
    myConnection.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;   Data Source = C:\Users\MatMat\Documents\PBIPayrollMgmt1.accdb;"
    myConnection.Open()

    datagridshow()

    Me.Hide()
    viewPayroll.Show()

    If CheckBox1.Checked Then
        Try
            Dim icell As Double
            Dim totalpay As Double

            icell = viewPayroll.DataGridView1.CurrentRow.Cells(5).Value

            totalpay = icell * 11.0

            viewPayroll.DataGridView1.CurrentRow.Cells(5).Value = totalpay


        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End If

End Sub

它做了什么我需要但它只乘以第一行的值。如何将其应用于所有行?有没有“CurrentColumn”这样的东西?

以下图片供参考:

2nd Form

1 个答案:

答案 0 :(得分:0)

  

但它只会乘以第一行的值

自然。您只对CurrentRow进行计算:

相反,您需要遍历DatagridView中的所有行并应用计算,如下所示:

For Each rowX As DataGridViewRow In dgv.Rows
    rowX.Cells(5).Value = rowX.Cells(5).Value * 11.0m;
Next

此外,您需要将循环放在更合适的处理程序中,例如DataGridView.DataBindingComplete event。