使用喜欢搜索

时间:2015-03-08 11:10:33

标签: c# .net oledb

当我在搜索我的数据网格时,它应该始终是第一个要输入的单词。如果我输入它包含的下一个单词或连续字母,则不会显示。

实施例: 我要去搜索欢迎回来。如果我键入“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;

1 个答案:

答案 0 :(得分:3)

这是因为您告诉数据库选择以textBox1.Text开头的行,后跟其他任何内容(%),您应该将其更改为

"Select * From books where Author like ('%" + textBox1.Text + "%')";

这将找到他们的作者在其价值的某个地方textBox1.Text的所有书籍。

like command %可以替换为零个或多个字符。

同时尝试使用parameterized queries,您的代码容易受到SQL injection的攻击。<​​/ p>