C# 如何为DataView设置不区分大小写的RowFilter
我有一个datagrid,它的数据源是dataview。有一个文本框,用户可以用它键入过滤文本。我想使过滤器不区分大小写。 例如,键入的文本是“Tg” 我试过这个C# 如何为DataView设置不区分大小写的RowFilter,c#,sql,case-insensitive,dataview,rowfilter,C#,Sql,Case Insensitive,Dataview,Rowfilter,我有一个datagrid,它的数据源是dataview。有一个文本框,用户可以用它键入过滤文本。我想使过滤器不区分大小写。 例如,键入的文本是“Tg” 我试过这个 Mydataview.RowFilter = "UPPER(COL) LIKE '%TG%'" 但这给了我一个无效操作的例外 然后我把它改成了 Mydataview.RowFilter = "COL LIKE '%tg%' or COL LIKE '%TG%'" 这是可行的,但并不涵盖所有情况。例如,如果一行为“Tg”,则将过滤掉
Mydataview.RowFilter = "UPPER(COL) LIKE '%TG%'"
但这给了我一个无效操作的例外
然后我把它改成了
Mydataview.RowFilter = "COL LIKE '%tg%' or COL LIKE '%TG%'"
这是可行的,但并不涵盖所有情况。例如,如果一行为“Tg”,则将过滤掉不需要的内容。
我想要的是,当用户输入“Tg”时,它将匹配任何数据与Tg,Tg,Tg,Tg,所有的组合
感谢
RowFilter
遵守数据集区分大小写的
值
因此,请在表单加载方法中执行此操作:
默认情况下,区分大小写
设置为False
mydataset.CaseSensitive = false
概念证明:
选择两次名称,其中一个名称作为查找器,然后使用该列(不可见)来筛选行谢谢,我没有使用dataset,我使用datatable,我尝试设置MyTable.CaseSensitive=false,不起作用为什么不编写所有可能的组合:“像“%tg%”这样的列或像“%tg%”这样的列或像“%tg%”这样的列或像“%tg%”这样的列太长了(虽然可能)。如果用户键入“test”,那么我有16个组合。如果可能的话,我会尽量避免这种情况。谢谢,我刚刚尝试使用datatable,它很有效。我以前尝试时犯了一个错误。