c # поиск по ключевому слову текстового поля с использованием SqlCommand в DataGridView - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу найти все данные в моем DataGridView.

ID   Name           Effect
1   NameA   Release 
2   NameB   Make Stronger
3   NameC   Boost

Чтобы отобразить правильные данные в DataGridView,

SqlCommand searchSqlCmmd;
SqlDataAdapter searchSqlAdpt;
DataTable searchDtbl = new DataTable();
searchSqlCmmd = new SqlCommand();
searchSqlCmmd.Connection = connection;
searchSqlCmmd.CommandType = CommandType.Text;
searchSqlCmmd.CommandText = "SELECT * FROM db.Ability WHERE Name = @searchText OR Effect = @searchText";
searchSqlCmmd.Parameters.Add("@searchText", TextBox.Text);
searchSqlAdpt = new SqlDataAdapter(searchSqlCmmd);
searchSqlAdpt.Fill(searchDtbl);
uxTable.DataSource = searchDtbl;
TextBox.Clear();

Для строки запроса я использовал OR, который, я думаю, будет искать в обоих столбцах.Тем не менее, он ищет только первый столбец (ИМЯ).Моя строка запроса (CommandText) неверна?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

используйте это:

SELECT * FROM db.Ability WHERE Name LIKE '%' + @searchText + '%' OR Effect = '%' + @searchText + '%'
0 голосов
/ 28 ноября 2018

Я думаю, вы ищете что-то более похожее на:

"SELECT * FROM db.Ability WHERE Name LIKE% @ searchText% ИЛИ Effect LIKE% @ searchText%";

РЕДАКТИРОВАТЬ:

Вы хотели бы использовать что-то вроде ниже

SELECT Name, Effect FROM datainfo
WHERE  Name LIKE '%Delta%' OR Effect LIKE '%Delta%';

http://sqlfiddle.com/#!9/c30bc5/3

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