Webmatrix / Razor и хранимая процедура с параметром OUT - PullRequest
2 голосов
/ 11 января 2012

Я пробую WebMatrix впервые и, основываясь на различных форумах, я собрал код для выполнения хранимой процедуры (в SQL Server 2008), но мне нужно извлечь выходное значение из хранимой процедуры обратно в параметре OUTPUT.

Я использую следующий код:

@(
   var strInputParam = "Test";
   var strOutputParam = "";
   var db = Database.Open("mydatabase");
   var selectQueryString = "EXECUTE dbo.SP_Test @0, @1";
   //var selectQueryString = "EXECUTE dbo.SP_Test @0, @1 OUTPUT";
   db.Execute(selectQueryString, strInputParam, strOutputParam);
}

Когда я запускаю это, процедура запускается, но "strOutputParam" по-прежнему пусто после выполнения.Я также попробовал версию в прокомментированном коде как альтернативу, но это также возвращает пустое значение.

Что мне нужно сделать, чтобы получить значение параметра OUTPUT?

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 14 января 2016

Я знаю, что уже поздно, но на всякий случай, если кто-то еще хочет получить ответ,

Если ваш запрос возвращает только одно значение:

var strOutputParam = db.QueryValue(selectQueryString, strInputParam, strOutputParam);

Если ваш запрос возвращает всю строку:

var strOutputParam = db.QueryValue(selectQueryString, strInputParam, strOutputParam);
var col1 = strOutputParam.col1;
var col2 = strOutputParam.col2;

Если ваш запрос возвращает несколько строк:

foreach (var strOutputParam in db.QueryValue(selectQueryString, strInputParam, strOutputParam){

}
0 голосов
/ 11 января 2012

Помощник по базе данных не поддерживает выходные параметры. Он никогда не был предназначен для работы с хранимыми процедурами. Вместо этого вы можете использовать обычный ADO.NET.

...