1

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;

前もって感謝します。

私はC#4.0を使用しています

4

1 に答える 1

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/もチェックしてください

于 2012-08-17T14:47:32.093 に答える