1

我的存储过程的最后一行是这样的:

RETURN (22);

我正在调用我的存储过程,如下所示:

var result = new ObjectParameter("result", typeof(double));
int success = context.MySP(code, Id, result);

从我的代码调用存储过程时工作正常。

code是一个字符串,Id是一个 Guid 并且result是一个OUTPUT参数并且工作正常。

所以我知道RETURN (22);正在执行该语句(在查询分析器中运行也证实了这一点,当我在那里运行时返回值为 22)。

我期待(在此示例中)success包含 22,但它始终包含 -1。

22将返回值放入success变量的最直接方法是什么?

谢谢罗伯

4

1 回答 1

1

您的存储过程应该声明一个输出。假设它是@result,您将需要设置它并返回它。

CREATE PROCEDURE MySP
    /*
    Input parameters here
    */
    @result INT OUTPUT
AS
BEGIN

    SET @result = 22
    return @result

END

您调用的返回值应该在result.

var result = new ObjectParameter("result", typeof(double));
context.MySP(code, Id, result);

int success = result.Value;
于 2013-08-27T23:52:59.673 回答