当前位置: 代码迷 >> ASP.NET >> |M| 对SQL字符过行转换的不明白,该怎么处理
  详细解决方案

|M| 对SQL字符过行转换的不明白,该怎么处理

热度:9607   发布时间:2013-02-25 00:00:00.0
|M| 对SQL字符过行转换的不明白
text   =   text.Replace( "\ " ",   "" ");
text   =   text.Replace( "; ",   " ' '; ' ' ");
text   =   text.Replace( " ' ",   " ' ' ");
text   =   text.Replace( "-- ",   " ' '-- ' ' ");
这是我看别人查询数据库时对语句的转换

但是要是这样写查询的话那我如我的表
                  ID             User             Pass                              
9 -- a0486ff05530df6c 2
10 : 903f6d77e456892f 3
11 \ 9d8a121ce581499d 1
12 ' df80460f38209566 1
我要分别查出这里面的记录的话用   where   User=??
这种方法的话那不是查不出来

我个人认为是不是text   =   text.Replace( " ' ",   " ' ' ");
有这一种就行了

大家说说看法

------解决方案--------------------------------------------------------
用sqlcommand的参数就不用考虑这些了
------解决方案--------------------------------------------------------
用户名可以允许这么多怪异的字符?
------解决方案--------------------------------------------------------
有这样的用户名:)
------解决方案--------------------------------------------------------
他应该是过滤掉一些SQLSERVER的注入式攻击的作用,用sqlcommand也可以达到他的目的
------解决方案--------------------------------------------------------
建议用sqlcommand
------解决方案--------------------------------------------------------
哎 现在还在 回车键 徘徊呢 真是的 郁闷

------解决方案--------------------------------------------------------

------解决方案--------------------------------------------------------
查询的话
先把查询的条件的值也转换了,再拼sql语句。


------解决方案--------------------------------------------------------
注意不要循环的转化了。
比如;-> "-> &quot"这样的问题
------解决方案--------------------------------------------------------
防止sql注入用的,可以用代入参数而不是直接拼接sql命令。
  相关解决方案