2012-01-11 116 views
2

我想第一次WebMatrix和基于各种论坛,我放在一起的代码来执行存储过程(在SQL Server 2008中),但我需要检索输出值从该存储过程返回到OUTPUT参数中。Webmatrix /剃刀和存储过程与OUT参数

我使用下面的代码:

@(
    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参数值?

感谢您的帮助!

回答

0

数据库帮助程序不支持输出参数。它从来没有设计用于存储过程。您可以使用普通的ADO.NET。

+0

谢谢迈克。我想我必须回到常规编程。有一次,我想我可以把事情放在一起,不必重新发明轮子:-( – user1142216 2012-01-11 17:10:12

0

我知道已经晚了,但只是在情况下,一些人愿意回答,

如果您的查询只返回一个值:

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){ 

}