使用 like 搜索
Searching using like
当我搜索我的数据网格时,它应该总是第一个输入的词。如果我键入下一个单词或它包含的连续字母,它不会显示。
示例:
我要搜索“欢迎回来”。如果我键入 "Elcome" 或 "back",它不会显示。
这是我的代码...
OleDbCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * From books where Author like ('" + textBox1.Text + "%')";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
这是因为您要告诉数据库 select 行以 textBox1.Text
开头,后跟任何其他内容 (%
),您应该将其更改为
"Select * From books where Author like ('%" + textBox1.Text + "%')";
这将找到其作者 textBox1.Text
某处价值的所有书籍。
在like command中%
可以替换为零个或多个字符。
也尝试使用 parameterized queries, your code is vulnerable to SQL injection。
当我搜索我的数据网格时,它应该总是第一个输入的词。如果我键入下一个单词或它包含的连续字母,它不会显示。
示例: 我要搜索“欢迎回来”。如果我键入 "Elcome" 或 "back",它不会显示。
这是我的代码...
OleDbCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * From books where Author like ('" + textBox1.Text + "%')";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
这是因为您要告诉数据库 select 行以 textBox1.Text
开头,后跟任何其他内容 (%
),您应该将其更改为
"Select * From books where Author like ('%" + textBox1.Text + "%')";
这将找到其作者 textBox1.Text
某处价值的所有书籍。
在like command中%
可以替换为零个或多个字符。
也尝试使用 parameterized queries, your code is vulnerable to SQL injection。