小编典典

在参数中用撇号调用存储过程不起作用

sql

我在C#中有一个应用程序,当它的一部分工作是将所有数据从Excel文件插入数据库时​​。

从Excel获取数据的工作很好,我正在使用存储过程将数据插入数据库的表中。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[sp_Insert]

@id int,
@brand nvarchar(50),
@model nvarchar(50),
@prodNumber nvarchar(50),
@category nvarchar(50),
@local nvarchar(50)

AS
INSERT INTO Tbl_Registos (ID, Brand, Model, [Product Number], Category, Local)
VALUES (@id, @brand, @model, @prodNumber, @category, @local)

这是SP完美运行时的一个示例:

sp_Insert N'1', N'Brand example', N'ABC123', N'123456-7890', 
          N'Laptop', N'18'

当我遇到这样的情况时,问题就来了:

sp_Insert N'1', N'Brand example', N'ABC123', N'123456-7890',
          N'Laptop', N'Director's floor'

当我'在论证中间提到这个问题时。我以为使用引号[],但是在有整数的情况下,不能将它们放在引号之间。

从Excel中获得一行之后,我正在使用循环将参数放入作为查询的字符串中。


阅读 176

收藏
2021-04-22

共1个答案

小编典典

您可以在输入的前面加上另一个’来转义’,插入将起作用。您可以执行此操作,也可以解析此类字符的数据并忽略它们。因此,您的带有此转义符的插入语句将是:

sp_Insert N'1', N'Brand example', N'ABC123', N'123456-7890', N'Laptop', N'Director''s floor'
2021-04-22