пользовательский параметр sql, используя предложение IN в gridview - C # - PullRequest
0 голосов
/ 17 мая 2009

Когда я разместил следующий SQL-запрос,

SELECT
   [ItemID], [Name], [RelDate], [Price], [Status] 
FROM 
   [item_k] 
WHERE 
   [ItemID] IN (" + itemIDs + ")

в пользовательских выражениях sql gridview преобразуется в

SELECT 
   ItemID, Name, RelDate, Price, Status   
FROM 
   item_k 
WHERE 
   (ItemID IN ([ + itemIDs + ]))

и при выполнении запроса появляется следующая ошибка

SQL Execution Error
Invalid column name '+ itemIDs+'

в чем проблема?

спасибо

Ответы [ 3 ]

1 голос
/ 17 мая 2009

Проблема с вашим методом string concat заключается в том, что он может сделать вас уязвимым для SQL-инъекций. Я не пытался бы исправить этот подход, но пошел бы для параметризованного запроса, который не требует конкатенации строк.

1 голос
/ 17 мая 2009

Вы пытались поместить + itemIDs + в одинарные кавычки?

0 голосов
/ 17 мая 2009
SELECT [ItemID], [Name], [RelDate], [Price], [Status] FROM [item_k] WHERE [ItemID] IN (' + itemIDs + ')

изменил "на", и это сработало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...