asp.net 字符串替换
过滤sql关键词
实例:
string str="Shen Zhen Select";
我想替换 Select
1、如果使用 Replace函数 用户输入 select 就替换不了 (不能忽略大小写)
2、如果先转换为大小写在替换,那用户输入的信息就会发生改变 Shen Zhen 变为了 shen zhen 或 SHEN ZHEN
要求:
只替换关键词,不改变用户输入的信息 "Shen Zhen Select" 替换后变为 "Shen Zhen"
请 大虾们 赐教!!!!!!!!!!!!
------解决方案-------------------- string str = "Shen Zhen Select";
str = Regex.Replace(str, @"(?i)select", "");
------解决方案--------------------过滤sql关键词,不需要这样处理的.
SqlParameter 本身就有过滤sql关键词及SQL注入式攻击的功能,用这样对象就行了.
string SQLStr;
SqlParameter[] pas ={new SqlParameter("@p0",SqlDbType.VarChar,200),
new SqlParameter("@p1",SqlDbType.VarChar,200)};
pas[0].Value="";
pas[1].Value="";
SQLStr = string.Format(@"update df_logon_user set logon_time=getdate(),
expire_time=dateadd(n,@p0,getdate())
where cookie_value=@p1");
SqlHelper.ExcuteNonQuery(SQLStr, pas);
仔细看参数@p0,@p1,是怎样定义并赋值,并且带入SQL语句中的
再看下面的示例:
SqlParameter p = new SqlParameter("@nid",SqlDbType.Int);
p.Value = nid;
string strsql = "delete zd_news where newid=@nid";
this.ExecSQL(strsql,p);
------解决方案--------------------
[align=left]String curStr = "Shen Zhen Select";
String temp = curStr.ToLower();
int index = 0;
if (temp.Contains("select"))
{
index = temp.IndexOf("select");
}
curStr = curStr.Substring(0, index);[/align]