C# DataView Rowfilter-转义单引号包装在单引号内
在我的应用程序中,用户可以手动构建rowfiler。这方面的一个例子是C# DataView Rowfilter-转义单引号包装在单引号内,c#,datatable,dataview,rowfilter,C#,Datatable,Dataview,Rowfilter,在我的应用程序中,用户可以手动构建rowfiler。这方面的一个例子是 (Message LIKE '%'[Search]'%') OR (Message LIKE '%'[Search2]'%') 我怎么才能逃脱呢?目前,我使用下面的函数来转义括号和斜杠,但我需要在整个筛选器字符串中转义单引号 public static string CheckValue(string value) { StringBuilder sBuilder = new StringBuilder(); s
(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();
}
publicstaticstringcheckvalue(字符串值){StringBuilder sBuilder=newstringbuilder();
字符串模式=@“([-\]\[\?\*\\\”“/\\\\\\~\(\)\\\\\\\/=>转义单引号
sBuilder.Append(@"\'");
这样做会中断查询,因为它还会转义开始和结束行筛选器引号。