textBox自动搜索

时间:2011-12-28 10:31:58

标签: c# ms-access

我有一个'搜索'文本框。当用户输入文本时,我想自动填充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!");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

将快乐字符放在参数:

之外
cmd.Parameters.Add("@Name", OleDbType.Char).Value = "%" + txtSearch.Text + "%";