добавление новой строки в DataGridView с дублированием проверки данных - PullRequest
0 голосов
/ 23 марта 2020

мой код работает нормально, если я удален, пока l oop, но когда я использую этот блок для просмотра дублированных элементов, он добавляет один элемент и отлично работает на дублированном фильтре, но я не могу добавить больше элементов в DataGridView i Я уверен, что проблема внутри, пока я oop код, но я не смог его найти.

Dim x As Integer
Dim cmd As New SqlCommand("SELECT * FROM Products WHERE ProductBarcode ='" + ProductBarcode.Text + "' ", Con)
Dim dt2 As New DataTable
Dim adp As New SqlDataAdapter(cmd)
adp.Fill(dt2)
If dt2.Rows.Count > 0 Then
    Dim i As Integer = 0
    While i < dgv_SaleProduct.Rows.Count
        If dgv_SaleProduct.Rows(i).Cells(1).Value.ToString = ProductBarcode.Text.ToString Then
            If MessageBox.Show("هذا المنتج موجود مسبقاً في الفاتورة هل تريد تحديث الكمية لنفس المنتج و إضافتها للفاتورة؟", "تنبيه", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.No Then
                Exit Sub
            Else
                dgv_SaleProduct.Rows(i).Cells(4).Value = dgv_SaleProduct.Rows(i).Cells(4).Value + Val(Quantity.Text)
                dgv_SaleProduct.Rows(i).Cells(5).Value = dgv_SaleProduct.Rows(i).Cells(3).Value * dgv_SaleProduct.Rows(i).Cells(4).Value
                InvoiceTotal()
                ProductBarcode.Text = ""
                Quantity.Text = ""
                ProductBarcode.Focus()
                NumberItems.Text = dgv_SaleProduct.RowCount
            End If
            Return
        End If
    End While
    dgv_SaleProduct.Rows.Add()
    x = dgv_SaleProduct.Rows.Count - 1
    dgv_SaleProduct(0, x).Value = dt2.Rows(0).Item("ProductID")
    dgv_SaleProduct(1, x).Value = dt2.Rows(0).Item("ProductBarcode")
    dgv_SaleProduct(2, x).Value = dt2.Rows(0).Item("ProductName")
    dgv_SaleProduct(3, x).Value = dt2.Rows(0).Item("SellingPrice")
    dgv_SaleProduct(4, x).Value = Quantity.Text
    dgv_SaleProduct(5, x).Value = Val(dt2.Rows(0).Item("SellingPrice")) * Val(Quantity.Text)
End If
InvoiceTotal()
ProductBarcode.Text = ""
Quantity.Text = ""
ProductBarcode.Focus()
NumberItems.Text = dgv_SaleProduct.RowCount
...