基本上只要过滤单引号就行了,其他的字符你可以包在单引号之中,怎么会出错呢,如: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即使包含特殊字符也会被过滤
后面一个变量有逗号,但是在单引号之中是不会有影响的
不过要彻底杜绝这种情况,你就需要用参数化的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即使包含特殊字符也会被过滤
解决方案 »
- 关于视频图像实时处理的问题,求高手解答!!!
- 有个c#的vs2010里的debug程序,如何得到源代码呢?
- 求助:HttpWebResponse GetResponse 十分慢
- 我想程序中下载网页http://top.baidu.com/top_keyword.html,但是只下载了很少的一部分,请问是什么原因?
- 不用datagrid滚动条,用vscrollbar代替,怎么用
- 关于用c#.net进行csv输出
- 关于窗口继承问题
- 试图运行项目时出错:
- dev DateEdit 日期显示英文
- 页面间的通讯?
- 继承自MarshalByValueComponent的类是值类型的吗?
- win2003下无法安装vs.net2002,有经验的朋友帮忙
cmd.Parameters.Add("@bb").Value = bb;
//aa和bb为局部变量