如何为DataView设置RowFilter不区分大小写

时间:2012-10-16 16:20:28

标签: c# sql case-insensitive dataview rowfilter

我有一个datagrid,它的数据源是一个数据视图。有一个文本框,用户可以使用该文本框键入过滤器文本。我想使过滤器不区分大小写。 比如,输入的文字是" Tg"

我试过这个

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

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

然后我将其改为

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

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

谢谢

2 个答案:

答案 0 :(得分:10)

RowFilter服从数据集CaseSensitive

在Form_Load方法中这样做:

CaseSensitive默认设置为False

mydataset.CaseSensitive = false

概念证明:

enter image description here

答案 1 :(得分:0)

选择名称两次,其中一个名为upper(name)作为finder,然后使用该列(不可见)来过滤行