当列名包含特殊字符时,如何将 Convert 函数与 RowFilter/CustomFilter 一起使用?

Posted

技术标签:

【中文标题】当列名包含特殊字符时,如何将 Convert 函数与 RowFilter/CustomFilter 一起使用?【英文标题】:How do you use the Convert function with RowFilter/CustomFilter when column name has special characters? 【发布时间】:2015-05-28 07:50:09 【问题描述】:

我想将我的所有列字段转换为字符串以便于过滤,但我的一个列名为 item#。如何以这种方式使用 Convert() 或有更好的解决方案?

dv.CustomFilter = string.Format("Convert('0', 'System.String') LIKE '%1%'", columnname, text)

我尝试了以下带“[]”括号的语法,但都不起作用。

dv.CustomFilter = string.Format("Convert('[0]', 'System.String') LIKE '%1%'", columnname, text)

dv.CustomFilter = string.Format("[Convert('0', 'System.String')] LIKE '%1%'", columnname, text)

【问题讨论】:

【参考方案1】:

好吧...我建议跟随。 [] 是转义你所说的 # 字符。另外,我将 % 放在“文本”之前和之后,以便它搜索任何列名。

dv.CustomFilter = string.format("CONVERT(["+columnname+"], System.String) LIKE '%"+text+"%'");

【讨论】:

我想我的问题并没有我想的那么清楚。我正在尝试通过 CustomFilter 属性将过滤器应用于数据视图。过滤器字符串将来自文本字段。我使用 Convert() 的原因是因为 'LIKE' 运算符不适用于将不同类型与字符串进行比较。我面临的挑战是列名中有一个特殊字符。我希望这更有意义。 列名中已经有一个“#”。我必须先去掉它才能使用 ["+columname+"],不是吗?

以上是关于当列名包含特殊字符时,如何将 Convert 函数与 RowFilter/CustomFilter 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有特殊字符的列名别名为具有下划线而不是特殊字符的新列名?

从列标题中删除特殊字符[重复]

jQuery EasyUI datagrid列名包含特殊字符会导致表格错位

在 BigQuery 的列名中包含特殊字符?

当密码包含特殊字符时写入连接字符串

当密码包含特殊字符时写入连接字符串