asp.net 执行1个update 出错
检查 sql 发现是 update a set field1='123'23'"' where id=1
值是123'23' 所以导致sql 不能正确执行
有没有什么方式让语句正常(sqlserver2005) 测试
insert into a(a) values('Ll4oK''8g')
declare @a varchar(12)
set @a='Ll4oK'
set @[email protected]("'","''")
print @a
insert into a(a) values(@a)
必须把单引号 转双引号? 有没有其他方法解决问题?
(种方法 第一种 通过params的方式 不知道 这样不行不可行 第二种把'这个符号 存进去的时候特换成,或者其他特殊字符 取出来的时候 再反替换)
检查 sql 发现是 update a set field1='123'23'"' where id=1
值是123'23' 所以导致sql 不能正确执行
有没有什么方式让语句正常(sqlserver2005) 测试
insert into a(a) values('Ll4oK''8g')
declare @a varchar(12)
set @a='Ll4oK'
set @[email protected]("'","''")
print @a
insert into a(a) values(@a)
必须把单引号 转双引号? 有没有其他方法解决问题?
(种方法 第一种 通过params的方式 不知道 这样不行不可行 第二种把'这个符号 存进去的时候特换成,或者其他特殊字符 取出来的时候 再反替换)
解决方案 »
- ASP.Net Web Service在win7 iis部署,出错
- 怎么取得上个月的字符串?
- 求一个Microsoft Visual Studio 2005的下载地址谢谢
- ~~~~~~~~~~~自定义控件开发问题~~~~~~~~~~~~~~
- 谁能推荐一个基于.Net的工作流引擎?
- 小问题老是解决不了,各位来接分.急~~~~~~~~~~~~
- ACCESS中的图片显示和插入问题!!!感激不尽!
- 关于dataTable中添加新行的问题
- 动态加载用户控件,怎么设置参数,使用户控件有所变化
- 请教 又没有什么系统的方法可以使a.aspx?room=5202 ?后面的内容加密??
- Access 数据库 进行增删插的时候提示:“操作必须使用一个可更新的查询。”
- 求助大神:sqlDataReader 取到了值,还提示未将对象引用设置到对象的实例。
你没有学过sql?任何一本教你t-sql语法的入门书都应该写过的,如果字符串常量中有两个单引号,而你使用单引号来作为字符串常量的前后缀,那么常量里的单引号就应该写为两个单引号来。如果没有看过正规的sql语法书,现在赶紧上msdn查一下有没有对于字符串常量的规范?!
theTextBox.Text.Replace("'","''") +"')";
如果不知道写Replace,我们就说那种开发人员根本不懂sql语法,不按照规范去编程。这跟什么“sql注入”其实没有关系。假设你按照sql语法去编程,这里就不可能有什么“sql注入”的闲言碎语可说。
或者是必须保证其它类型数据类型正确,例如var sql="insert into a(b) values ("+ int.Parse(theTextBox.Text).ToString() +")";这是基本的数据库编程规范,因为sql基本语法就是这样要求的,你总要保证字符串常量中的单引号转义,总要保证是数字的常量就一定是数字而不是其它。如果你写出的程序一眼就能看出根本不保证sql语法正确,还能让负责验收代码的人(老板或者用户)说什么呢?