我在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中获取一行后,我使用循环将参数放在作为查询的字符串中。
答案 0 :(得分:2)
你可以在你的输入中通过放置另一个来逃避它,插入将起作用。您可以执行此操作或解析此类字符的数据并忽略它们。因此,使用此转义的插入语句将是:
sp_Insert N'1', N'Brand example', N'ABC123', N'123456-7890', N'Laptop', N'Director''s floor'