如何基于多个输入过滤DataView

Hel*_*rld 1 c# dataview filter

我知道如何根据用户在单个文本框中的输入过滤数据:

FilterDataView.RowFilter = txtFilter.Text;

但是,您将如何根据多个字段的多个用户输入过滤数据.基本上过滤器将充当"搜索"功能.

HAB*_*JAN 5

定义RowFilter时可以使用light t-sql之类的东西.

一个想法是:

FilterDataView.RowFilter = "name like '%habjan%' and city like '%new york%'"
Run Code Online (Sandbox Code Playgroud)

在这里,您可以找到关于RowFilter语法的好文章:DataView RowFilter语法

根据您的需要,您必须根据输入的字段构建行过滤器.

    StringBuilder sb = new StringBuilder();

    if (tb1.Text.Length > 0)
    {
       sb.Append("name like '%" + tb1.Text + "%'");
    }

    if (tb2.Text.Length > 0)
    {
       if(sb.Length > 0)
       {
           sb.Append(" and ");
       }

       sb.Append("city like '%" + tb2.Text + "%'");
    }
    //.... and so on...

    FilterDataView.RowFilter = sb.ToString();
Run Code Online (Sandbox Code Playgroud)