当前位置: 首页 > 面试题库 >

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

屠华辉
2023-03-14
问题内容

我有一个带有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模式和实践数据库库。那有几个命令,您可以在其中传递用作参数值的语句和对象数组-也可以处理转义。

如果是上述两种情况之一,则可以完全消除替换值的代码行。



 类似资料:
  • 问题内容: 我正在使用参数化查询将我的经典ASP转换为.Net。我的问题是在我的经典应用程序中,我将用等号替换为撇号 现在,我想用真正的撇号替换数据库中的该值。我不确定语法应该如何做到这一点。我可以找到,但不确定如何替换。以下是我试图解决该错误的简单更新。 更新tblCustomer设置名称= replace(Name ,,’‘’) 问题答案: 加倍撇号以字符串文字形式将其转义 或使用功能

  • 我有一个json对象,我正在加载它并用双引号替换它。其语法为: 在我的数据中,我有以下格式的键/值对: 这导致我得到以下回溯: 实际上,我不想在上面这样的名称中替换撇号,但我会认为我的json。loads语句将我的密钥/值对转换为: 我想这也会失败。我需要知道的是: 1) 为什么是我的json。loads语句在加载期间不替换字符串中的撇号?2) 在我的字符串中转义撇号的最佳方法是什么,这样它们就不

  • 问题内容: 我有一个文件“ test.txt”,其中包含以下内容 我要做的是将它们替换为: 但是为什么这段代码不起作用? 什么是正确的方法? 问题答案: 使用代替。并添加标志以替换所有内容。

  • 假设我们想用它的摩尔斯码替换字母“a”,从text.txt文件到使用sed的隐藏的.out.txt文件,原始文件的内容是“这是一个测试”。 正如预期的那样,输出是“this is.-test”。 但是,假设我们希望执行sed的多个实例,而不需要使用-n参数不断打印sed的每个实例的结果。在这种情况下: 然而,在这种情况下,cat的输出与text.txt的内容相同,“这是一个测试”。 是否有一种可能

  • 问题内容: 我正在寻找与T-SQL相当的db2: 问题答案: 根据《DB2生存指南》,也可以使用两个撇号在DB2上获得单个撇号。那不是对你有用吗?

  • 问题内容: 我似乎有问题。我有一个查询字符串,其值可以包含单引号。这将中断查询字符串。因此,我试图进行替换以更改为。 这是一个示例代码: 输出仍然是: 它认为我只是对引号进行转义。 所以我尝试了这两段代码: 上面的两个STILL结果都相同: 我似乎只能得到这实际上吐出一个斜线: 结果是: 有什么建议?我只是想更换一个同。 似乎应该没有那么困难。 问题答案: 首先,如果您要对查询字符串编码撇号,则需