Как суммировать значение ячейки DataGridView с критериями ComboBox? - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть DataGridView в form1 и combobox1 и textbox2 в form2. Я сопоставляю значение combobox1 со значением form1 DataGridView и делаю сумму данных DataGridView c ячеек с combobox1 выбранным значением. мой ComboBox имеет значения 1,2,3,4, и я хочу, чтобы сумма DataGridView указывала c ячеек, когда выбранное ComboBox значение совпадает со значением DataGridView, но мой код суммирует все ячейки. как это сделать подскажите пожалуйста?

Private Sub cn()

    Dim totalcn As Double
    For Each rw As DataGridViewRow In Form1.DataGridView2.Rows
        If rw.Cells(2).Value = ComboBox1.Text Then

            'if you have the other column to get the result you  could add a new one like these above 
            For index As Integer = 0 To Form1.DataGridView2.RowCount - 1
                totalcn += Convert.ToInt32(Form1.DataGridView2.Rows(index).Cells(1).Value)
            Next
        End If           
    Next
    Label11.Text = totalcn.ToString

End Sub

1 Ответ

2 голосов
/ 01 мая 2020

У вас, кажется, есть лишний л oop. Также я не могу понять, работаем ли мы со значениями Integer или Double. Я использовал Double в коде, но вы можете легко изменить его на Integer. Вместо Convert.To используйте простую оптимизированную спецификацию vb c CInt, если вы уверены, что значения являются целыми числами. Более безопасным является .TryParse.

Private Sub cn()
    Dim totalcn As Double
    Dim cellDoub As Double
    For Each rw As DataGridViewRow In Form1.DataGridView2.Rows
        If rw.Cells(2).Value.ToString = ComboBox1.Text Then
            If Double.TryParse(rw.Cells(1).Value.ToString, cellDoub) Then
                totalcn += cellDoub
            End If
        End If
    Next
    Label11.Text = totalcn.ToString
End Sub
...