首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用返回值执行SubSonic3 StoredProcedure

如何使用返回值执行SubSonic3 StoredProcedure
EN

Stack Overflow用户
提问于 2009-08-19 17:55:13
回答 3查看 993关注 0票数 1

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

这使用的是SubSonic 3.0.0.3。

代码语言:javascript
复制
myDB db = new myDB();
StoredProcedure sp = db.GetReturnValue(myParameterValue);
sp.Execute();
int? myReturnValue = (int?)sp.Output;

在上面的代码中,sp.Output始终为空。在数据库中执行时,返回的变量是一个有效的整数(0或更高),并且从不为null。

存储过程代码如下:

代码语言:javascript
复制
CREATE PROCEDURE  [dbo].[GetReturnValue]    
     @myVariable varchar(50)
AS
    declare @myReturn int
BEGIN
    set @myReturn = 5;
    return @myReturn;   
END

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-20 16:55:50

我复制了存储过程并遍历了SubSonic代码,.Output在任何地方都不会被设置。一种解决办法是使用输出参数并在执行后引用它: sproc.OutputValues;

票数 3
EN

Stack Overflow用户

发布于 2011-11-12 19:04:14

这里有一个简单的方法:

在存储过程中,使用SELECT代替RETURN,如下所示:

代码语言:javascript
复制
SELECT @@ROWCOUNT 

代码语言:javascript
复制
SELECT @TheIntegerIWantToReturn

然后在代码中使用:

代码语言:javascript
复制
StoredProcName.ExecuteScalar()

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

票数 1
EN

Stack Overflow用户

发布于 2009-10-01 16:45:28

代码语言:javascript
复制
CREATE PROCEDURE  [dbo].[GetReturnValue]    
     @myVariable varchar(50)
     @myReturn BIGINT OUTPUT
AS
    declare @myReturn int
BEGIN
    set @myReturn = 5;
    return @myReturn;   
END
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1301568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档