首页 > 解决方案 > C# 使用多个文本框过滤 DataGridView?

问题描述

在此处输入图像描述

这就是它的样子。学生查找和课程查找搜索两个不同的数据库。我正在尝试从左侧的文本框中显示搜索结果。这是数据库的样子。

在此处输入图像描述

此代码在用户单击提交时运行。我从另一个帖子中检索到它,但无济于事:

BindingSource bs = new BindingSource();
        bs.DataSource = dgvAdvisor.DataSource;
        bs.Filter = "First_Name like '%" + lblFirstName.Text + "%' AND 
        Username like '%" + lblUsername.Text + "%'";
        dgvAdvisor.DataSource = bs;

第 3 行和第 4 行是一行,Stack Overflow 似乎把它切碎了。

有什么建议吗?

标签: c#sqlwinforms

解决方案


从您提供的代码来看,您似乎正在使用 Label 的文本过滤数据源,并且您希望使用 TextBox 的文本对其进行过滤。

假设您的关联TextBox控件是txtFirstNameand txtUserName,请尝试如下修改您的代码。

    BindingSource bs = new BindingSource();
    bs.DataSource = GetDataTable(); //This method should return whole data table.
    bs.Filter = "First_Name like '%" + txtFirstName.Text + "%' AND 
    Username like '%" + txtUserName.Text + "%'";
    dgvAdvisor.DataSource = bs;

推荐阅读