日期:2014-05-16  浏览次数:20443 次

添加数据的时候在文本框输入“ ' ”会出错
本帖最后由 tammeny 于 2014-03-11 14:57:42 编辑
添加数据的时候在文本框输入“'”,即英文状态下的单引号就会出错,而中文下的单引号则不会,什么情况?


------解决方案--------------------
'是数据库的关键字符,易用于SQL注入
------解决方案--------------------
你没有做sql防注入,转换特殊字符。
后台处理下,转成两个单引号就可以了。
------解决方案--------------------
楼上正解,SQL语句中有这样的语句:  where name='zhang' ,这相当于C#中的 "zhang",所以 '  属于特殊字符,就会报错
------解决方案--------------------
试试在插入数据的时候用存储过程或者用参数的形式把输入的值穿给sql语句
比如你的sql语句是这么写的: 当你要插入的数据是a时, insert into testTable values ('a'), 这种情况会正确插入, 但是当你要插入的数据是英文的单引号时, sql语句变为:insert into testTable values ('''), 由于单引号没有闭合, 所以会报错
正确的方法是insert into testTable values (@myValue)
然后把你的输入值添加到command的parameter列表中, 然后再执行