2012-04-07 3 views
0

в моей таблице. Некоторые записи уже хранятся в двух столбцах First_Name и Last_Name.извлекает записи из таблицы, которая содержит символ или строку

Ravi Kant | Sharma 

Raj | Kumar 

Ravi | Anupam 

Abhinav | Kumar 

Ashish | Kumar 

Avinash | a 

Ravi | Anand 

И мой поиск имя текстового поля является txtName, в котором я уже набрал ravi. Теперь я использую запрос

SELECT * FROM USER_INFO 
WHERE FIRST_NAME LIKE '%"& txtName.Text &"%' 
OR LAST_NAME LIKE '%"& txtName.Text &"%' 

Так, что он должен получить все записи, которые cantains ravi.

Но он возвращает только две строки из таблицы, имя которой Ravi. Но я хочу, чтобы он возвращал все записи, содержащие эти символы, что означает, что он должен возвращать 3 строки.

Нужна помощь!

EDITED

"SELECT * FROM JOBS WHERE (JOB_DESCRIPTION LIKE '%" & keyword.Trim() & "%' OR JOB_SKILL LIKE '%" & keyword.Trim() & "%' OR JOB_QUALIFICATION LIKE '%" & keyword.Trim() & "%') AND JOB_ROLE='" & profile & "'" 

Это мой запрос, где я хочу, чтобы использовать вышеупомянутую концепцию.

+6

Вы открыты для SQL-инъекций, используйте SqlParameters. –

ответ

1

(хотя ваше решение имеет инъекции SQL - как мой друг здесь сказали .... [Параметры использования])

var [email protected]"SELECT * FROM USER_INFO 
    WHERE FIRST_NAME LIKE '%"+txtName.Text.Trim() [email protected]"%' 
    OR LAST_NAME LIKE '%"+txtName.Text.Trim() +"%'"; 

ни SQlInjection версии: (SQL Server Side)

SELECT * FROM USER_INFO 
WHERE FIRST_NAME LIKE '%'[email protected] +'%' 
OR LAST_NAME LIKE '%'[email protected] +'%' 

где @txtName is nvarchar(100) // или что-то еще ...

+3

sql injection possible .. – hkutluay

+1

Поскольку это asp.net, я считаю, что txtName.Text.Trim() будет лучшим выбором для обрезки, а не с использованием ltrim rtrim. –

+0

@ChrisGessler yep отредактирован. –

Смежные вопросы