Я запускаю программу с источником данных источника и видом сетки. Мой метод обновления выглядит так, как будто он проходит через программу правильно. Но когда он попадает в БД, возникает какая-то синтаксическая ошибка.
Вот хранимый процесс
USE [starch]
GO
/****** Object: StoredProcedure [dbo].[Starch_Update_KPCodes] Script Date: 09/13/2011 11:02:1 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Stored_proc_name]
(
@bookcode as varchar(15),
@PC as varchar(10),
@EReader as varchar(10),
@Tablet as varchar(10),
@Mobile as varchar(10)
)
AS
Begin
Update storedproc
SET
Valid_Ans_Nbr = @PC
where
kp_Column=82 and BookCode = @bookcode
Update
Valid_Answers
SET
Valid_Ans_Nbr = @EReader
where
kp_Column=83 and BookCode = @bookcode
Update
Valid_Answers
SET
Valid_Ans_Nbr = @Tablet
where
kp_Column=84 and BookCode = @bookcode
Update
alid_Answers
Set
Valid_Ans_Nbr = @Mobile
where
kp_Column=85 and BookCode = @bookcode
END
А затем вот что передается в базу данных в профилировщике SQL
exec sp_executesql N'Starch_Update_KPCodes',
N'@bookcode nvarchar(8),
@PC nvarchar(1),
@EReader nvarchar(1),
@Tablet nvarchar(1),
@Mobile nvarchar(1)',
@bookcode=N'A0027232',
@PC=N'1',
@EReader=N'1',
@Tablet=N'1',
@Mobile=N'1'
Часть того, что я думаю, происходит из-за того, что я отбросил и заново создал хранимую процедуру несколько раз. И эта строка
N'@bookcode nvarchar(8),@PC nvarchar(1),@EReader nvarchar(1),
@Tablet nvarchar(1),@Mobile nvarchar(1)'
, вероятно, относится к некоторой кешированной версии хранимого процесса.
Я проверил событие обновления моего objectdatasource, чтобы убедиться, что оно имеет правильные параметры.
Как мне избавиться от лишнего текста, который передается в хранимую процедуру?