【问题标题】:Webmatrix/Razor and Stored procedure with OUT parameterWebmatrix/Razor 和带有 OUT 参数的存储过程
【发布时间】:2012-01-11 02:49:15
【问题描述】:

我是第一次尝试 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 参数值吗?

感谢您的帮助!

【问题讨论】:

    标签: c# stored-procedures razor webmatrix


    【解决方案1】:

    数据库助手不支持输出参数。它从未被设计用于存储过程。您可以改用普通的 ADO.NET。

    【讨论】:

    • 谢谢迈克。我想我必须回到常规编程。有一次我以为我可以把东西放在一起,而不必重新发明轮子:-(
    【解决方案2】:

    我知道已经晚了,但以防万一其他人想要答案,

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2015-01-07
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      相关资源
      最近更新 更多