c#在DataGridView中使用SqlCommand搜索文本框关键字



我想搜索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,我认为它将搜索这两列。但是,它只搜索第一列(NAME(。我的查询字符串(CommandText(错了吗?

使用这个:

SELECT * FROM db.Ability WHERE Name LIKE '%' + @searchText + '%' OR Effect = '%' + @searchText + '%'

我想你正在寻找更像的东西

"SELECT*FROM db.Ability WHERE Name LIKE%@searchText%OR Effect LIKE%@searchText%">

编辑:

你可能想使用类似下面的东西

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

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

最新更新