gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:02:57 26 4
gpt4 key购买 nike

我有一个带有名称字段的 Web 表单,我希望能够接受单个撇号,例如名称 O'Leary,但是当尝试将此记录推送到 SQL 2005 服务器时,我收到一个错误。我的问题不是这个。就是当我尝试使用此语句将记录插入数据库时​​...

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

我在数据库中得到 O''Leary 而不是 O'Leary。认为 SQL 应该将这些双单撇号视为一个撇号???

最佳答案

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

插入双单引号(我说对了吗?)是转义数据的一种方式。它应该可以工作,但这不是最佳实践。

请参阅这篇文章以获得更完整的答案:

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

我建议的是第 3 步。

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

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

它还由多种工具处理,包括 Mirosoft 模式和实践数据库库。这有几个命令,您可以在其中传递用作参数值的语句和对象数组 - 也可以处理转义。

如果是其中任何一种情况,您可以完全消除要替换值的代码行。

关于asp.net - 替换asp.net中的撇号以防止SQL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com