Оператор Sql в C# выдает ошибку sqlexception
вот мой код
//cmd is already declared as string cmd = "SELECT SUM(purchasePrice) AS price, COUNT(purchasePrice) AS num" + "FROM ( SELECT TOP ("+quantity+") purchasePrice FROM store.dbo.tblSingleItems" + "WHERE IsActive='1' AND proID='" + proID + "') AS profit" + "UPDATE TOP ("+quantity+") tblSingleItems SET IsActive='1',salePrice='" + price +"' " + "WHERE IsActive='1' AND proID='" + proID + "'"; SqlCommand sqlcmd = new SqlCommand(cmd, con); SqlDataAdapter sda = new SqlDataAdapter(sqlcmd); DataTable tbl = new DataTable(); sda.Fill(tbl); con.Close();
когда это выполняется в приложении, дает Синтаксическая ошибка рядом с '='
Что я уже пробовал:
я попробовал эту команду в sql server 2014, которая дает мне вывод без каких-либо ошибок. я очень внимательно посмотрел, но не смог найти никакой синтаксической ошибки. если кто-нибудь может узнать
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]