Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataView Rowfilter-转义单引号包装在单引号内_C#_Datatable_Dataview_Rowfilter - Fatal编程技术网

C# DataView Rowfilter-转义单引号包装在单引号内

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

在我的应用程序中,用户可以手动构建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();
}
publicstaticstringcheckvalue(字符串值){StringBuilder sBuilder=newstringbuilder();
字符串模式=@“([-\]\[\?\*\\\”“/\\\\\\~\(\)\\\\\\\/=>转义单引号

sBuilder.Append(@"\'");

这样做会中断查询,因为它还会转义开始和结束行筛选器引号。