Goran Bibic Ответов: 1

Выберите из базы данных, если у вас есть значение row.cells


Я стараюсь

Нужно проверить, где состояние

where code =  row.Cells["code"].Value)


Это сработает?

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

foreach (DataGridViewRow row in ItemDataGridView.Rows)
               {
                   using (SqlConnection con = new SqlConnection(Con))
                   {

(select price from dbo.items where code =  row.Cells["code"].Value) as new_price,

1 Ответов

Рейтинг:
9

Richard Deeming

Нет, потому что это было бы уязвимо для SQL-инъекция[^].

Используйте параметр.

using (SqlConnection con = new SqlConnection(Con))
using (SqlCommand cmd = new Sqlommand("... (select top 1 price from dbo.items where code = @code) as new_price, ...", con))
{
    cmd.Parameters.AddWithValue("@code", row.Cells["code"].Value);
    ...

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]