加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在asp.net中替换撇号以防止SQL错误

发布时间:2020-12-16 06:30:00 所属栏目:asp.Net 来源:网络整理
导读:我有一个带有Name字段的web表单,我希望能够接受单个撇号,例如名称为O’Leary,但是当我尝试将此记录推送到SQL 2005服务器时,我收到错误.我的问题不是这个.当我尝试使用此语句将记录插入数据库时??… Dim acctName As String = Replace(txtName.Text,"'","''")
我有一个带有Name字段的web表单,我希望能够接受单个撇号,例如名称为O’Leary,但是当我尝试将此记录推送到SQL 2005服务器时,我收到错误.我的问题不是这个.当我尝试使用此语句将记录插入数据库时??…

Dim acctName As String = Replace(txtName.Text,"'","''")

我在数据库中获得O”Leary而不是O’Leary.思想SQL应该把这些双单撇号视为一个撇号???

解决方法

你最好使用参数化查询.这些将自动处理单引号,并更好地保护您免受SQL注入.

插入双单引号(我说对了吗?)是一种逃避数据的方法.它应该工作,但它不是最佳实践.

请参阅此文章以获得更全面的答案:

http://msdn.microsoft.com/en-us/library/ff648339.aspx

我建议的是第3步.

编辑 – 我应该更好地阅读这个问题

如果您已经在使用参数化查询或存储过程,并且您将acctName的值设置为参数的值,那么您不需要自己转义引号.这是自动处理的.

它还由几个工具处理,包括Mirosoft模式和实践数据库库.这有几个命令,你可以传入一个语句和用作参数值的对象数组 – 也可以处理转义.

如果是这种情况之一,您可以完全消除替换值的代码行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读