如何使用输出参数调用EF6中的存储过程

时间:2017-07-08 10:30:33

标签: asp.net-mvc string stored-procedures entity-framework-6 output-parameter

我有一个存储过程,它返回一个包含字符串的参数,我不知道如何调用它并获取输出参数以显示在我的视图中

ALTER PROCEDURE [dbo].[sp_test]
@room_type varchar(40)
,@room_price_min float
,@room_price_max    float
,@room_number   varchar(30)
,@new varchar(50) output
as
;
--select @room_no 
if exists(select room_number from Rooms_ms where room_number=@room_number) 
begin
    set @new='Room Already Exists'
    select @new
    return
end

insert into Rooms_ms(room_type,room_price_min,room_price_max,room_number) values
(@room_type,@room_price_min,@room_price_max,@room_number)

set @new='Successfully'
select  @new
return

我试图像下面那样抓住它,但不知道如何做到这一点。

 var result=   db.sp_test(a, b, 0, c);

谢谢

2 个答案:

答案 0 :(得分:1)

您可以实现以下内容来检索存储过程调用的数据

using(var db = new iConext())
 {
   var details = db.Database.SqlQuery<iType>("exec iProc @param", new SqlParameter("@param", iValue));
 }
  • iType是int或string或long,或者可以是ComplexType
  • @param是一个或多个必需参数
  • iContext用于您的数据库连接

答案 1 :(得分:0)

这是我的代码示例之一

string sql = string.Format("exec sp_MyTest '" + methods.DateTimeFormat(vmodel.Search.FDate, false, 1) + "','" + methods.DateTimeFormat(vmodel.Search.TDate, false, 1) + "','" + vmodel.Search.LocationId + "',"+ 0"'");

var result = db.(DbSetName(like.Students))SqlQuery(sql).ToString();

if Return List, then 
    var result = db.(DbSetName(like.Students))SqlQuery(sql).ToList();
相关问题