基本上只要过滤单引号就行了,其他的字符你可以包在单引号之中,怎么会出错呢,如:insert into table(a,b) values(a,'b,c')
后面一个变量有逗号,但是在单引号之中是不会有影响的
不过要彻底杜绝这种情况,你就需要用参数化的SQL语句,如:string sql = "insert into table(a,b) values(@aa,@bb)";SqlCommand cmd = new SqlCommand( sql,new SqlConnection("...") );cmd.Parameters.Add("@aa").Value = aa;
cmd.Parameters.Add("@bb").Value = bb;
//aa和bb为局部变量这样aa和bb即使包含特殊字符也会被过滤