如何使用C#中的文本框过滤datagridview?

ame*_*mer 8 c# datagridview filter winforms

我厌倦了使用文本框过滤数据网格视图,文本框包含在标签页中,但它不起作用,这里是代码:

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        try
        {
            ((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = "like '%" + textBox1.Text.Trim() + "%' ";
        }
        catch (Exception) { }

    }
Run Code Online (Sandbox Code Playgroud)

Tho*_*que 18

RowFilter允许您根据列值指定过滤器.因此LIKE适用于特定列,而不适用于整行.所以你的病情应该是

"YourColumn like '%" + textBox1.Text.Trim() + "%'
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记TextBox可以包含该'字符,因此您需要将其转义:

"YourColumn like '%" + textBox1.Text.Trim().Replace("'", "''") + "%'
Run Code Online (Sandbox Code Playgroud)

或者,清洁:

string.Format("YourColumn like '%{0}%'", textBox1.Text.Trim().Replace("'", "''"));
Run Code Online (Sandbox Code Playgroud)