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

FilterDataView.RowFilter = txtFilter.Text;

但是您将如何基于来自多个字段的多个用户输入来过滤数据。
基本上,过滤器将充当“搜索”功能。

最佳答案

定义RowFilter时,可以使用类似light t-sql的方法。

一种想法是:

FilterDataView.RowFilter = "name like '%habjan%' and city like '%new york%'"


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

对于您需要的内容,您将必须根据输入的字段构建行过滤器。

    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();

10-06 02:03