DataView Rowfilter -转义单引号包裹在单引号内
本文关键字:单引号 包裹 转义 Rowfilter DataView | 更新日期: 2023-09-27 18:10:53
在我的应用程序中,用户可以手动构建rowfiler。例如
(Message LIKE '%'[Search]'%') OR (Message LIKE '%'[Search2]'%')
我该如何逃脱呢?目前,我使用下面的函数来转义括号和斜杠,但我需要转义整个过滤器字符串中的单引号。
public static string CheckValue(string value) { StringBuilder sBuilder = new StringBuilder();
string pattern = @"([-']'[<>'?'*'''""/'|'~'(')'#/=><+'%&'^''])";
Regex expression = new Regex(pattern);
if (expression.IsMatch(value))
{
foreach (char c in value)
{
switch(c){
case '''':
sBuilder.Append("''");
break;
case '[':
sBuilder.Append(@"[[]");
break;
case ']':
sBuilder.Append(@"[]]");
break;
default:
sBuilder.Append(c);
break;
}
}
}
return sBuilder.ToString();
}
转义单引号
sBuilder.Append(@"''");