使用TextBox过滤Datagridview行

时间:2015-02-10 13:36:00

标签: c# winforms datagridview filter

我有一个绑定的datagridView,我想使用TextBox值过滤它。

我使用了这段代码:

private void ChercheStextBox_TextChanged(object sender, EventArgs e)
    {
        try
        {
            ((DataTable)dataGridView3.DataSource).DefaultView.RowFilter = string.Format("LibService like '%{0}%'", ChercheStextBox.Text.Trim().Replace("'", "''"));
        }
        catch
        {

        }

    }

但即使我使用了相同的代码,此代码也不会过滤datagridView

在另一个datagridView中,它完美无缺。

我不知道在哪里 我的代码中出现

错误?

提前致谢。

修改

我删除了try catch,我收到了此错误消息:

  

无法转换类型&system; system.windows.forms.bindingsource'键入' system.data.datatable'

我该如何解决?

2 个答案:

答案 0 :(得分:6)

DataSource是一种BindingSource而非DataTable,所以请尝试以下代码:

private void ChercheStextBox_TextChanged(object sender, EventArgs e)
    {
        var bd = (BindingSource)dataGridView3.DataSource;
        var dt = (DataTable)bd.DataSource;
        dt.DefaultView.RowFilter = string.Format("LibService like '%{0}%'", ChercheStextBox.Text.Trim().Replace("'", "''"));    
        dataGridView3.Refresh();


    }

答案 1 :(得分:0)

我认为您需要使用此方法:

arg3

您只需要使用Combobox来更改列号...只需使用您的想象力。

谢谢。