Sql server:как вычесть 2 столбца и сохранить результат в следующей строке
у меня есть таблицы следующим образом:
Apply_ID Name Days_Applied Balance(по умолчанию=12)
1 Милтон 1 11
2 Милтон 2 9
Когда пользователь(milton) впервые подает заявку, баланс со значением по умолчанию 12 дней вычитается на "Days_Applied" в этом случае 1, который оставляет баланс на уровне 11. Когда тот же пользователь подает заявку снова(Apply_ID =2), баланс 11 вычитается из значения Days_Applied и становится 9 и так далее.
Моя проблема заключается в том, что поскольку l сделал баланс со значением по умолчанию 12, баланс вычитает значение по умолчанию 12-Days_Applied и показывает результаты, как показано ниже:
Apply_ID Имя Days_Applied Баланс
1 Милтон 1 11
2 Милтон 2 10
Что я уже пробовал:
l have this sql query: ("UPDATE applications SET Balance = Balance-Days_Applied WHERE Apply_ID = '" & listBoxApplications.SelectedItem & "'") l am selecting the application from a list box.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Using cmd As New SqlCommand("UPDATE applications SET Balanace = Balance - Days_Applied WHERE Apply_ID = @ApplyID", connection) cmd.Parameters.AddWithValue("@ApplyID", listBoxApplications.SelectedItem) connection.Open() cmd.ExecuteNonQuery() End Using