Привет,
У меня есть два вопроса относительно DataTable.Select ():
1) Как избежать потенциальных апострофов или любых других символов, которые могут вызвать проблемы. Меня не беспокоит SQL-инъекция.
2) Как использовать IN с Like и включить результаты с нулевым значением.
1) К сожалению, я не могу найти какой-либо совет по первому варианту, поскольку каждый говорит, что использует параметризованные (это слово) запросы, которые, я уверен, вы не можете сделать с Datatable.select. Ситуация такая, я не знаю, какие значения будут опережать время, так как список извлекается из текстового поля. ('US', 'Engineering', 'Lumburg's'). Я знаю, что мог бы разобрать строку перед передачей ее в select, но я уверен, что есть какой-то ANSI, встроенный для этого, чего, боюсь, нет. знать. Я знаю, что два апострофа подряд избежали бы персонажа, если бы я знал, где он будет расположен, но я не знаю точное местоположение, когда получу его.
2) Хорошо. Теперь для фактического выбора выражения. Что я хочу сделать, так это разрешить пользователю свободно вводить тип формы в текстовое поле. В этом текстовом поле будут использоваться 4 разных столбца для фильтрации. Таким образом, пользователь может ввести несколько элементов, разделенных пробелом, которые затем будут выполнять запрос в соответствии с их критериями. (например, окно поиска iTunes, которое позволяет вам вводить песню альбома произвольной формы и т. д., или вы можете быть конкретны и выполнять поиск только по одному типу элемента)
Я знаю, как сделать IN или Like самостоятельно, но я не уверен, как я мог бы собрать их вместе (включая экранирование апострофов и включая результаты, которые совпадают, но могут иметь ноль в одном из столбцов) и Конечно, сделайте что-нибудь, что поддерживается методом .Select.
ГДЕ (Страна В («США», «Инжиниринг», «Ламбург»))
ГДЕ (Страна НРАВИТСЯ 'LU%')
Таким образом, пользователь в вышеприведенном случае предоставил LU, который должен вернуть запись для Lumburg. Чем больше информации они предоставляют, тем дальше будут уточняться результаты. Есть идеи?
Вот технические характеристики моего приложения:
Winforms
VB.NET
.Net 2.0