Измените этот код, чтобы сделать это всякий раз, когда вы нажимаете эту кнопку, чтобы добавить +1 Кол-во в datagridview
Private Sub OK1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click Dim sqlQRY As String = "SELECT * FROM Products WHERE ProductCode = '" & txtCode.Text & "'" Dim cmd As OleDbCommand = New OleDbCommand(sqlQRY, conn) Dim rdr As OleDbDataReader = cmd.ExecuteReader If txtCode.Text = "" Then MessageBox.Show("Input a product code!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) txtCode.Text = "" txtCode.Focus() ElseIf rdr.HasRows Then rdr.Read() Dim intProductID As Integer = rdr("ProductID").ToString Dim newRow As SalesDataSet.SalesDetailsRow = SalesDataSet.SalesDetails.NewSalesDetailsRow newRow.SalesID = SalesIDTextBox.Text newRow.ProductName = intProductID newRow.Qty = 1 Dim Price As Decimal = rdr("Price") newRow.Price = Price newRow.Amount = Price SalesDataSet.SalesDetails.Rows.Add(newRow) txtCode.Text = "" txtCode.Focus() Else MessageBox.Show("Product not found!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) txtCode.Text = "" txtCode.Focus() End If txtTotal.Text = Totals() Dim vat As Decimal vat = Val(txtTotal.Text) * 0.12 txtVAT.Text = vat Button1.Enabled = True End Sub
Что я уже пробовал:
Я попытался изменить "newRow. Qty = 1" на "newRow.Qty += 1", но не получилось !
Пожалуйста, помогите мне с этим кодом. Спасибо! :)
Richard MacCutchan
Вы должны получить начальное количество из вашей записи базы данных, а затем добавить к нему 1. Что-то вродеnewRow.Qty = rdr("Quantity").Value + 1;
Member7596
Когда я ok1.performclick() за два раза потом показывают двух строк в элементе управления datagridview.
Я хочу показать одну строку в datagridview, когда я нажимаю ok1. performclick() в течение двух раз, но кол-во в один раз равно 1, а в два раза-2. Спасибо
Richard MacCutchan
Затем вам нужно изменить логику программы в вашем методе нажатия кнопки. В таком виде Вы читаете запись и создаете новую строку данных. Вам нужно изменить его так, чтобы он сначала проверял существующую строку с этим идентификатором продукта.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]