Поиск специальных символов в DataVew RowFilter

Как вы можете использовать RowFilter для поиска в строке с амперсандом (или любым другим «специальным» символом, например, !"£$%^&*())

Когда я пытаюсь, я получаю следующую ошибку:

Ошибка в операторе Like: шаблон строки '%£(*$\&%' недействителен

Копия моего RowFilter ниже:

value="£(*$\&"; //I know this is rubbish, but I don't want the system to crash.

filterString = string.Format("Description LIKE '%{0}%'", value);

myDataView.RowFilter=filterString;

Заранее спасибо.

Я использую С# 4.0


person Sun    schedule 17.08.2012    source источник
comment
возможный дубликат .NET BindingSource.Filter с регулярными выражениями   -  person David Hall    schedule 17.08.2012


Ответы (1)


Может этот поможет..

CheckValue("fefe[][]12#");
CheckValue("abvds");
CheckValue("#");
CheckValue(@"[][][][][]\\\\\][]");
CheckValue("^^^efewfew[[]");

public static string CheckValue(string value)
{
    StringBuilder sBuilder = new StringBuilder(value);

    string pattern = @"([-\]\[<>\?\*\\\""/\|\~\(\)\#/=><+\%&\^\'])";

    Regex expression = new Regex(pattern);

    if (expression.IsMatch(value))
    {
        sBuilder.Replace(@"\", @"\\");
        sBuilder.Replace("]", @"\]");
        sBuilder.Insert(0, "[");
        sBuilder.Append("]");
    }
    return sBuilder.ToString();
}

Также проверьте http://www.csharp-examples.net/dataview-rowfilter/.

person Ramesh Durai    schedule 17.08.2012
comment
Нет, это вылетает, как только я вхожу в &f. - person Sun; 20.08.2012
comment
Не волнуйтесь. По указанной вами ссылке был ответ. Спасибо - person Sun; 20.08.2012