我想在我的MVC应用程序中执行存储过程。
我正在使用Database First方法&我创建了一些像::
这样的存储过程CREATE PROCEDURE [dbo].[TestProcedure]
@parameter1 int
AS
set @parameter1 = 1
return @parameter1
我在My 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);
}
但我无法获得返回值&amp;无法知道存储过程是否已执行。 请尽快帮助我。
答案 0 :(得分:1)
将程序导入edmx后,请更改您的Action方法,如下所示:
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);
}
}
答案 1 :(得分:1)
我已执行存储过程,如, 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
是输出参数。