textBox автоматический поиск - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть текстовое поле поиска.Когда пользователь вводит текст, я хочу автоматически заполнить 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 Ответ

1 голос
/ 28 декабря 2011

Положите веселые символы вне параметра:

cmd.Parameters.Add("@Name", OleDbType.Char).Value = "%" + txtSearch.Text + "%";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...