2016-10-09 7 views
0

У меня есть список, у меня уже есть код, который, когда я нажимаю кнопку «ПОКУПАТЬ», Количество слева и количество будут вычтены в базе данных и будут отображаться в списке. Напротив, я хочу удалить выбранный элемент и добавить его количество в оставшееся количество. Heres мой коддополнение запроса к выбранному элементу

openconnection() 
    cmd = New SqlCommand("UPDATE products SET quantity = '" + TextBox3.Text + "' WHERE bar_code = '" & ComboBox1.Text & "'", conn) 

    For Each i As ListViewItem In 
     ListView1.SelectedItems 

     cmd.Parameters.AddWithValue("@quantity", Val(TextBox5.Text) + Val(TextBox3.Text)) 

     cmd.Parameters.AddWithValue("@barcode", TextBox3.Text) 

     ListView1.Items.Remove(i) 
     ListView1.Items.Remove(i) 
     dr = cmd.ExecuteReader() 
    Next 


End Sub 

Деталь будет удален, но он не будет добавлять в базу данных, я не знаю, что мне не хватает.

+0

Я думаю, что вы больше всего прочитать о параметрах в SQL запросах https://www.mssqltips.com/ sqlservertip/2981/using-parameters-for-sql-server-queries-and-stored-processes/ – Damirchi

+0

Тег 'DBMS', который вы используете –

+0

Есть несколько вещей, которые я вижу здесь. Во-первых, строки parameters.addwithvalue вообще ничего не добавляют, поскольку в вашей строке запроса нет параметров. Вы пытаетесь обновить столбец количества с помощью строки, когда это, вероятно, int. Вы также должны использовать соглашение об именах помимо textbox1 и т. Д., Потому что они даже не используются последовательно. textbox3 и combobox1 оба, похоже, содержат штрих-коды в соответствии с вашим кодом, но вы используете textbox3 в качестве значения для обновления количества в одной строке и добавляете его в некоторый текстовый файл5 в другой строке. Здесь нет смысла – soohoonigan

ответ

0

Я не эксперт в vb.net, но я думаю, что ваш код подвержен внедрению sql. Похоже, вы parameters инициализируется TextBox стоимости, но не используется в запросе

Используйте parameter's

UPDATE products SET quantity = quantity - @quantity WHERE bar_code = @barcode 
Смежные вопросы