如何使用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
答案 0 :(得分: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();
}