存储过程未在MVC5中返回值

安吉尔

我正在通过db方法在带有实体框架的MVC5中工作。我使用Mysql作为数据库。我创建了一个过程,当在Mysql中调用过程时,它按预期工作。但是当我在MVC中使用过程时,它每次都会返回0。

存放程序

CREATE PROCEDURE `checkSeasonAvailability`( 
    IN paramSeasonId INT,   
    IN paramHotelId INT,
    IN paramStartDate varchar(20),
    IN paramEndDate varchar(20)
)
BEGIN
    DECLARE _startDate,_endDate DATETIME;
    DECLARE _hotelseasonID BIGINT(20);
    DECLARE _count,_rowCount,_dateDiff INT;
    DECLARE _index INT DEFAULT 1;
    DECLARE i INT DEFAULT 0;
    DECLARE cursorSeasonList CURSOR FOR SELECT `hotel_season_id`,`start_date`,`end_date`
            FROM    hotel_season_link
            WHERE   hotel_id    =   paramHotelId        &&
                    season_id   =   paramSeasonId       &&
                    active      =   TRUE;
    OPEN cursorSeasonList;
    SET _rowCount=FOUND_ROWS();
    SET _count=_rowCount;
    IF(_rowCount>0) THEN                    
        Proc:WHILE _index <= _rowCount DO
            FETCH cursorSeasonList INTO _hotelseasonID,_startDate,_endDate;
            SET _dateDiff=datediff(paramEndDate,paramStartDate);
            SET i=0;
            WHILE i <= _dateDiff DO

                SELECT COUNT(*) FROM hotel_season_link
                WHERE
                        adddate(paramStartDate,i) BETWEEN _startDate AND _endDate INTO _count;

                IF(_count>0) THEN
                    SELECT 1;
                    LEAVE Proc;     
                END IF;
                SET i=i+1;
            END WHILE;
        SET _index=_index+1;
        END WHILE;
    END IF;    
END

CALL checkSeasonAvailability(1,3,'2014-12-26 00:00:00','2014-12-31 00:00:00');//call in mysql

控制器

String format = "yyyy-MM-dd hh:mm:ss";
var status = db.checkSeasonAvailability(seasonId, hotelId, startDate.ToString(format), endDate.ToString(format));

当我调试代码时,我发现所有必需的参数都已成功发送,但没有得到返回值。如果我的代码有任何问题,请提出建议。

安吉尔

我自己解决这个问题。我改变了存储程序和操作方法。

我在过程中添加了另一个参数作为OUTPUT,并将返回值存储在此变量中。

OUT Flag int

SET Flag=0;
SELECT Flag;

然后更改操作方法。

String format = "yyyy-MM-dd hh:mm:ss";
System.Data.Entity.Core.Objects.ObjectParameter flag = new System.Data.Entity.Core.Objects.ObjectParameter("flag", typeof(int));
var status = db.checkSeasonAvailability(hotelSeasonId,seasonId, hotelId, startDate.ToString(format), endDate.ToString(format), flag);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

存储过程未在MVC5中返回值

来自分类Dev

将存储过程的返回值存储在变量中

来自分类Dev

将存储过程的返回值存储在变量中

来自分类Dev

如何从存储过程中获取返回值

来自分类Dev

从VB.NET中的存储过程获取返回值

来自分类Dev

在delphi中,存储过程的返回值始终为null

来自分类Dev

在delphi中,存储过程的返回值始终为null

来自分类Dev

如何从存储过程中获取返回值

来自分类Dev

存储过程的返回值在AGI变量中

来自分类Dev

在调用存储过程的方法中返回值

来自分类Dev

存储过程结果集与返回值

来自分类Dev

存储过程未返回值

来自分类Dev

MySQL存储过程返回值

来自分类Dev

存储过程未返回值

来自分类Dev

MySQL存储过程返回值错误

来自分类Dev

无法从存储过程获取返回值

来自分类Dev

调用参数化的存储过程,该过程在C#中返回值

来自分类Dev

存储过程未在表中插入值

来自分类Dev

尝试从必须返回值的C#形式的存储过程中查找值

来自分类Dev

如何将存储过程的返回值用作列中的默认值?

来自分类Dev

VHDL 中的过程从不返回值

来自分类Dev

如何使用存储过程的返回值设置值

来自分类Dev

不从ASP Classic中的存储过程中捕获返回值

来自分类Dev

如何从Windows窗体C#中的存储过程中获取返回值

来自分类Dev

无法在MVC5中使用存储过程进行数据表分页

来自分类Dev

如何从实体框架的存储过程中获取返回值?

来自分类Dev

我如何检查实体框架中存储过程的返回值

来自分类Dev

如何在Slick中调用存储过程并获取返回值(使用Scala)

来自分类Dev

使用ExecuteSqlCommand(使用Entity Framework)从存储过程中获取返回值

Related 相关文章

热门标签

归档