c# - 如何在 C# 中使用文本框过滤 datagridview?

标签 c# winforms datagridview filter

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

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

    }

最佳答案

RowFilter 允许您根据列值指定过滤器。所以 LIKE 适用于特定的列,而不是整行。所以你的条件应该是

"YourColumn like '%" + textBox1.Text.Trim() + "%'

此外,不要忘记 TextBox 可能包含 ' 字符,因此您需要对其进行转义:

"YourColumn like '%" + textBox1.Text.Trim().Replace("'", "''") + "%'

或者,清洁工:

string.Format("YourColumn like '%{0}%'", textBox1.Text.Trim().Replace("'", "''"));

关于c# - 如何在 C# 中使用文本框过滤 datagridview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6996375/

相关文章:

c# - 如何在 c# 中访问 Office365 Sharepoint (2013) 新闻/公告等文档以及 CSS 内容?

c# - 如何将命令绑定(bind)到本地事件?

vb.net - 如果用户单击该行并将焦点从该行移开,则重置 DataGridView 空白行

c# - 在datagridview c#中使一个单元格可编辑

c# - nlog 异常布局以格式化异常类型、消息和堆栈跟踪

c# - Linq 按不同值搜索

c# - Entity Framework Core - 对计算字段进行排序

c# - 如何在 Web 应用程序中使用 System.Windows.Forms.WebBrowser?

C# WinForms 标签将显示,但不显示文本

c# - 为什么 Visual Studio 会自动更改窗体的布局?