【发布时间】:2013-11-29 11:28:32
【问题描述】:
我想在我的 MVC 应用程序中执行存储过程。
我正在使用数据库优先方法,并且我创建了一些存储过程,例如:
CREATE PROCEDURE [dbo].[TestProcedure]
@parameter1 int
AS
set @parameter1 = 1
return @parameter1
我在我的 MVC 操作中使用了一些代码,如下所示::
private CueEntities db = new CueEntities();
public ActionResult ExecuteProcedure()
{
var parameter1=new SqlParameter("parameter1",1);
var test = db.Database.SqlQuery<CueEntities>("exec TestProcedure @parameter1",parameter1);
var check=db.TestProcedure(1);
return Json(test);
}
但我无法获得返回值并且无法知道存储过程是否已执行。 请尽快帮助我。
【问题讨论】:
-
请在此代码上建议我应该在此做什么
-
要从存储过程中返回一个值,您需要显式声明 .在存储过程中添加一个参数为:@parameter2 int OUT 并返回此参数中的值。然后您可以在应用程序中进行更改以获取第二个参数,并将参数方向作为输出。
-
@Deepshikha 是对的,但您可能还应该在参数声明中定义它:
var parameter1=new SqlParameter("parameter1",1){Direction = ParameterDirection.InputOutput} -
它不返回值“1”,它只是抛出“无法评估儿童”的异常。
-
@user2959554,要求人们“尽快”建议代码有点不礼貌。
标签: sql sql-server asp.net-mvc asp.net-mvc-3 entity-framework