如何使用Access数据库在DataGridView中搜索?

时间:2018-08-13 09:07:26

标签: c# winforms oledbdataadapter

我正在开发一个Winform数据库应用程序,该应用程序使用Access数据库更新数据。我试图在其中添加文本框来搜索和过滤datagridview中的数据(我使用OleDb dataadapter将datagridview连接到Access数据库。 我的搜索文本框代码如下:

private void txtSearchAdmin_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)13)
        {
            if (string.IsNullOrEmpty(txtSearchAdmin.Text))
                dataGridView.DataSource = employeesBindingSource;
            else
            {
                var query = from o in this.adminData.Employees
                            where o.Customer_Name.Contains(txtSearchAdmin.Text) || o.Phone == txtSearchAdmin.Text || o.Address.Contains(txtSearchAdmin.Text)
                            select o;
                dataGridView.DataSource = query.ToList();
          }
        }

1 个答案:

答案 0 :(得分:0)

@Abhi您当前正在使用KeyPress事件,并且此事件在输入文本框中的文本之前触发,因此您应该使用文本框TextChanged事件。

private void txtSearchAdmin_TextChanged(object sender, EventArgs e)
    {

            if (string.IsNullOrEmpty(txtSearchAdmin.Text))
                dataGridView.DataSource = employeesBindingSource;
            else
            {
                var query = from o in this.adminData.Employees
                            where o.Customer_Name.Contains(txtSearchAdmin.Text) || o.Phone == txtSearchAdmin.Text || o.Address.Contains(txtSearchAdmin.Text)
                            select o;
                dataGridView.DataSource = query.ToList();
          }

}