【发布时间】:2014-07-01 12:02:56
【问题描述】:
在我的应用程序中,用户可以手动构建 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();
}
【问题讨论】:
标签: c# datatable dataview rowfilter