如何在DataRow筛选中正确使用%特殊字符?
DataRow RowFilter 中LIKE语句含特殊字符%的正确用法
问题核心
你遇到的System.Data.EvaluationException是因为原表达式里的%被当成通配符处理,导致模式语法无效;而使用%01[%]2%无报错但无结果,要么是数据中不存在匹配行,要么是需要确认转义逻辑是否符合你的需求。
正确处理方式
1. 匹配字面量%(即字段值中包含01%2这个字符串)
在DataTable的RowFilter语法中,要匹配字面量的%,必须用方括号[]包裹。正确的过滤表达式为:
dr.RowFilter = "CODE LIKE '%01[%]2%'"
如果返回空结果,先检查数据源中是否真的存在CODE字段包含01%2的行——这通常是结果为空的主要原因。
2. 用%作为通配符(即匹配包含01且后续出现2的任意行)
如果你的需求是用%做通配符(匹配01和2之间有任意字符的行),原表达式"CODE LIKE '%01%2%'"本身语法合法,报错大概率是其他问题导致的,需要排查:
- 字段名
CODE是否正确(注意是否区分大小写) - 表达式是否有未闭合的引号或其他语法错误
内容的提问来源于stack exchange,提问作者mr anto
相关产品推荐
相关产品推荐

