Sql 如何在MVC中执行存储过程

Sql 如何在MVC中执行存储过程,sql,sql-server,asp.net-mvc,asp.net-mvc-3,entity-framework,Sql,Sql Server,Asp.net Mvc,Asp.net Mvc 3,Entity Framework,我想在我的MVC应用程序中执行存储过程 我使用数据库优先的方法&我创建了一些存储过程,如: CREATE PROCEDURE [dbo].[TestProcedure] @parameter1 int AS set @parameter1 = 1 return @parameter1 我在MVC操作中使用了如下代码: private CueEntities db = new CueEntities(); public ActionResult ExecuteProcedure()

我想在我的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);

            }
private-cueeentities db=new-cueeentities();
公共行动结果执行程序()
{
var parameter1=新的SqlParameter(“parameter1”,1);
var test=db.Database.SqlQuery(“exec TestProcedure@parameter1”,parameter1);
var检查=数据库测试程序(1);
返回Json(测试);
}
但是我无法获取返回值&无法知道存储过程是否被执行。
请尽快为我提供帮助。

将过程导入edmx后,请更改操作方法,如下所示:

public ActionResult ExecuteProcedure()
{
   using(var  db = new CueEntities())
   {
     var parameter = 1;
     var query =  db.Database.SqlQuery<TestProcedure>("TestProcedure @parameter1", 
                    new  SqlParameter("@parameter1", parameter)).ToList();          
        return Json(query,JsonRequestBehavior.AllowGet);     
    }
}
public ActionResult ExecuteProcedure()
{
使用(var db=new cueeentities())
{
var参数=1;
var query=db.Database.SqlQuery(“TestProcedure@parameter1”,
新的SqlParameter(“@parameter1”,parameter)).ToList();
返回Json(查询,JsonRequestBehavior.AllowGet);
}
}

我执行了如下存储过程:, 1) 仅适用于输入参数

var check=db.TestProcedure(1);
2) 对于存储过程中的输入和输出参数

 public ActionResult GenerateDocumentInvoice(int CompanyID, int UserID, string Documents)
 {
     var Result = new ObjectParameter("Result", new char());
     var exec = db.GenerateInvoice(CompanyID, UserID, Documents, Result);
     return Json(3);
 }
其中存储过程中的输入参数为::
CompanyID、UserID和Documents

Result
是输出参数。

请在这段代码中建议我应该做什么,要从存储过程返回值,您需要显式声明它。在存储过程中再添加一个参数:@parameter2 int OUT并返回此参数中的值。然后您可以在应用程序中进行更改,以获取第二个参数,并将参数方向作为输出。@Deepshikha是正确的,但您可能还应该在参数声明中定义它:
var parameter1=new SqlParameter(“parameter1”,1){direction=ParameterDirection.InputOutput}
它不返回值“1”,jsut抛出了一个例外,即“儿童不能被开发”。@user2959554,要求人们“尽快”建议代码有点不礼貌。