当我搜索数据网格时,它应该始终是要键入的第一个单词。如果我键入它包含的下一个单词或连续字母,它不会显示。
例:我要搜索欢迎回来。如果我输入"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;
这是因为您告诉数据库选择以textBox1.Text
开头的行,后跟任何其他内容(%
),您应该将其更改为
"Select * From books where Author like ('%" + textBox1.Text + "%')";
这将找到其作者在其价值中textBox1.Text
的所有书籍。
在类似的命令中,%
可以替换为零个或多个字符。
还可以尝试使用参数化查询,您的代码容易受到 SQL 注入的影响。