我正在开发一个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();
}
}
答案 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();
}
}