【问题标题】:How to set RowFilter case-insensitive for DataView如何为 DataView 设置 RowFilter 不区分大小写
【发布时间】:2012-10-16 16:20:27
【问题描述】:

我有一个数据网格,它的数据源是一个数据视图。有一个文本框,用户可以使用该文本框输入过滤器文本。我想让过滤器不区分大小写。 比如说,输入的文本是“Tg”

我试过了

Mydataview.RowFilter = "UPPER(COL) LIKE '%TG%'"

但这给了我一个无效操作异常

然后我把它改成

Mydataview.RowFilter = "COL LIKE '%tg%' or COL LIKE '%TG%'"

这可行,但并不涵盖所有情况。例如。如果一行是“Tg”,它将被过滤掉,这是不可取的。 我想要的是,当用户输入“Tg”时,它将匹配任何带有tg,Tg,TG,tG,所有组合的数据

谢谢

【问题讨论】:

    标签: c# sql case-insensitive dataview rowfilter


    【解决方案1】:

    RowFilter 服从数据集 CaseSensitive

    所以在你的 Form_Load 方法中这样做:

    CaseSensitive 默认设置为False

    mydataset.CaseSensitive = false
    

    概念证明:

    【讨论】:

    • 谢谢,我没有使用数据集,我使用数据表,我尝试设置 MyTable.CaseSensitive = false,不起作用
    • 你为什么不写下所有可能的组合:“COL LIKE '%tg%' or COL LIKE '%TG%' or COL LIKE '%Tg%' or COL LIKE '%tG%' "
    • 太长了(尽管可能)。如果用户输入“测试”,那么我有 16 种组合。如果可能的话,我会尽量避免这种情况。谢谢
    • 谢谢,我刚刚尝试使用数据表,它可以工作。我之前试错了。
    • 虽然我想可能有你想要的条件,所以如果数据集被重用,可能必须在这些地方更改此设置....
    【解决方案2】:

    选择名称两次,其中一个为大写(名称)作为查找器,然后使用该列(不可见)过滤您的行

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      相关资源
      最近更新 更多