文本框自动搜索

本文关键字:搜索 文本 | 更新日期: 2023-09-27 18:18:51

我有一个'search'文本框。当用户输入文本时,我想自动填充dataGridView。但txtSearch。文本总是显示"。怎么解呢?

如果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!");
        }
    }
}

文本框自动搜索

将jolly字符放在参数外:

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