1
我在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中獲得一行後,我使用循環將參數放入查詢字符串中。
我知道你有一個公認的答案已經那肯定會的工作,但我很希望看到你是如何調用該SP。如果您針對SqlCommand對象使用參數,則會自動處理轉義。你並不真的想開始承擔逃避論據的責任,你不需要。 – 2011-04-21 05:01:13
您應該避免使用'sp_'前綴命名存儲過程 - SQL Server將在您的實際數據庫之前在主數據庫中搜索此類過程,因此如果MS稍後添加新的'sp_'過程,您的調用代碼將會被破壞。 – 2011-04-21 06:47:44
感謝提示特洛伊;) – Miguel 2011-04-22 15:31:06