我有一个'搜索'文本框。当用户输入文本时,我想自动填充dataGridView。但是txtSearch.Text总是显示“”。我该如何解决这个问题?
如果txtSearch中没有文本,dataGridView必须显示所有数据。
这是代码:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
//grid.Rows.Clear();
OleDbDataReader dr = default(OleDbDataReader);
using (OleDbConnection cn = new OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ Application.StartupPath + "\\MyAcsessDb.accdb"))
{
cn.Open();
OleDbCommand cmd = new OleDbCommand(
"Select * FROM Student WHERE [Name] Like '%@Name%' ", cn);
cmd.Parameters.Add("@Name", OleDbType.Char).Value = txtSearch.Text;
dr = cmd.ExecuteReader();
if (dr.HasRows == true)
{
while (dr.Read())
{
grid.Rows.Add(dr[0].ToString(),
dr[1].ToString(),
dr[2].ToString(),
dr[3].ToString());
}
}
else
{
MessageBox.Show("No Data!");
}
}
}
答案 0 :(得分:1)
将快乐字符放在参数:
之外cmd.Parameters.Add("@Name", OleDbType.Char).Value = "%" + txtSearch.Text + "%";