Member 13343055 Ответов: 2

Является ли этот запрос правильным? ................................


я хотел бы вычесть количество из базы данных, но это не работает.

Что я уже пробовал:

это код, который я написал..

("Tbl_medicine обновить заданное количество = количество - '" &амп; текстовое поле textbox1.Текст &ампер; "' где Item_code= '" &амп; txtCode.Текст &"'", conn)

где textbox1-это количество, которое я хочу вычесть. (от пользователей)

2 Ответов

Рейтинг:
2

Mehdi Gholam

Никогда не ставьте в свои запросы прямые доступные пользователю значения, вы просто напрашиваетесь на неприятности с атаками sql-инъекций : SQL-инъекция-Википедия[^]

Использовать параметры SQL : Использование SQLParameters с VB.NET/C#[^]

Старайтесь не заключать числовые значения в одинарные кавычки :

"UPDATE tbl_medicine SET quantity = quantity - " & qvalue & " WHERE Item_code= '" & itemcode & "'"


Member 13343055

спасибо за информацию :)

Рейтинг:
10

Richard Deeming

Используйте параметры и убедитесь, что ввод количества является числовым:

Dim quantity As Integer
If Not Integer.TryParse(textbox1.Text, quantity) Then
    ' TODO: Show an error message to the user
    Return
End If

Using con As New SqlConnection("...")
    Using cmd As New SqlCommand("UPDATE tbl_medicine SET quantity = quantity - @quantity WHERE Item_code = @ItemCode", con)
        cmd.Parameters.AddWithValue("@quantity", quantity)
        cmd.Parameters.AddWithValue("@ItemCode", txtCode.Text)
        
        connection.Open()
        cmd.ExecuteNonQuery()
    End Using
End Using


Member 13343055

это работает! спасибо, приятель! :)