У меня проблема с параметрами вывода в Microsoft Sequel Server 2008 с Enterprise Library 5.0
Я вызываю процедуру из своего кода (в C #), и она работала нормально, пока я не добавил необязательный выходной параметр в хранимый процесс для отслеживания обратной связи.
Код для вызова процедуры из моего кода:
string insertCommand = insertParams[0]; //the stored proc command
Object[] parameterValues = insertParams.Skip(1).ToArray(); //The parameters
int feedback = 1;
IDataReader reader = localDB.ExecuteReader(insertCommand, parameterValues); //ERROR
if (reader.Eead()){
//stuf
Во время отладки параметрValues содержит один объект.
Я получаю ошибку
[System.InvalidOperationException] = {"Количество параметров не соответствует количеству значений для хранимой процедуры."}
Мой сохраненный процесс выглядит так:
ALTER PROCEDURE [dbo].[BS_GetDetails]
@BusStop_ID INT,
@FEEDBACK_CODE INT=NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @FEEDBACK_CODE = 200
//Do lots of other non-related things, mostly select statements
Когда я вызываю хранимый процесс из Базы данных только с одним параметром, он работает нормально, но, как только я получаю ошибку в своем коде после добавления дополнительного необязательного выходного параметра
Я мог бы создать второй хранимый процесс для вызова первого, но это похоже на хакерское решение, и я подозреваю, что мне здесь не хватает чего-то тонкого ...