Member 14201433 Ответов: 2

Программирование на C# для поиска ключевых слов из базы данных ?


Черт возьми, у меня есть таблица со следующими столбцами.

Profile_ID,Name,Age,More_Info_about family,qualification details, job details and partner_preference


Я должен искать по ключевым словам, и ключевое слово должно быть взято из текстового поля.

Результат поиска должен быть таким образом, чтобы ключевое слово if присутствовало в начале, конце и между предложениями любого из столбцов, представленных в условиях where.

Пожалуйста, помогите мне.

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

Я пытался LIKE '" + txtbox_keyword.Text + "'
но это не работает должным образом, это не поиск данных, если ключевое слово присутствует в промежутке между предложениями.

"select (Profile_ID,Name,Age, More_info_about_family,Job_Business_Location_City,Salary from tblRegistration  WHERE 

More_info_about_family LIKE '" + txtbox_keyword.Text + "' OR Qualification_Details LIKE '" + txtbox_keyword.Text + "' OR 

origin LIKE '" + txtbox_keyword.Text + "' OR Job_Detail LIKE '" + txtbox_keyword.Text + "' ", con);

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Например '" + txtbox_keyword.Текст + "'

То, как вы используете LIKE is for column, - это точное значение.
Оператор SQL LIKE[^]
"select (Profile_ID,Name,Age, More_info_about_family,Job_Business_Location_City,Salary from tblRegistration  WHERE More_info_about_family LIKE '" + txtbox_keyword.Text + "' OR Qualification_Details LIKE '" + txtbox_keyword.Text + "' OR origin LIKE '" + txtbox_keyword.Text + "' OR Job_Detail LIKE '" + txtbox_keyword.Text + "' "

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]


Рейтинг:
1

PIEBALDconsult

Во-первых, использование конкатенации строк для формирования операторов SQL-это ОЧЕНЬ ПЛОХАЯ ИДЕЯ.

Далее, при использовании LIKE скорее всего, вы захотите включить некоторые подстановочные знаки, такие как %, который соответствует нескольким символам.
Без подстановочных знаков вы просто пытаетесь сопоставить всю строку.
Возможно, вы не хотите ожидать, что пользователь указал их.

Поэтому, пожалуйста, изучите использование параметров (что действительно легко) и убедитесь, что вы используете подстановочные знаки.