Stored procedures 如何使用返回值执行SubSonic3 StoredProcess

Stored procedures 如何使用返回值执行SubSonic3 StoredProcess,stored-procedures,subsonic,subsonic3,Stored Procedures,Subsonic,Subsonic3,如何执行SP并获取返回值。下面的代码总是返回空对象。StoredProcess已在数据库中使用与代码中相同的参数进行了测试,但亚音速sp始终返回null。当通过sql在数据库中执行时,它返回正确的值 这是使用亚音速3.0.0.3 myDB db = new myDB(); StoredProcedure sp = db.GetReturnValue(myParameterValue); sp.Execute(); int? myReturnValue = (int?)sp.Output; 在上

如何执行SP并获取返回值。下面的代码总是返回空对象。StoredProcess已在数据库中使用与代码中相同的参数进行了测试,但亚音速sp始终返回null。当通过sql在数据库中执行时,它返回正确的值

这是使用亚音速3.0.0.3

myDB db = new myDB();
StoredProcedure sp = db.GetReturnValue(myParameterValue);
sp.Execute();
int? myReturnValue = (int?)sp.Output;
在上面的代码中,sp.Output始终为null。在数据库中执行时,返回的变量是有效的整数(0或更高),并且从不为null

存储过程代码如下:

CREATE PROCEDURE  [dbo].[GetReturnValue]    
     @myVariable varchar(50)
AS
    declare @myReturn int
BEGIN
    set @myReturn = 5;
    return @myReturn;   
END

在SQL Server中执行存储过程时,返回值为“5”。

我复制了存储过程并逐步执行了亚音速代码。输出从未设置在任何位置。解决方法是使用输出参数并在执行后引用它:sproc.OutputValues[0]

我复制了您的存储过程,并逐步执行了亚音速代码。输出从未设置在任何位置。解决方法是使用输出参数并在执行后引用它:sproc.OutputValues[0]

这里有一个简单的方法:

CREATE PROCEDURE  [dbo].[GetReturnValue]    
     @myVariable varchar(50)
     @myReturn BIGINT OUTPUT
AS
    declare @myReturn int
BEGIN
    set @myReturn = 5;
    return @myReturn;   
END
在存储过程中,不要使用RETURN,而是像这样使用SELECT:

SELECT @@ROWCOUNT 

然后在代码中使用:

StoredProcName.ExecuteScalar()

这将返回您在存储过程中选择的单个整数。

以下是一种简单的方法:

在存储过程中,不要使用RETURN,而是像这样使用SELECT:

SELECT @@ROWCOUNT 

然后在代码中使用:

StoredProcName.ExecuteScalar()

这将返回您在存储过程中选择的单个整数。

是否可以将存储过程中的sql?将存储过程代码添加到上面的问题。是否可以将存储过程中的sql?将存储过程代码添加到上面的问题。