gpt4 book ai didi

mysql - 存储过程不返回 MVC 5 中的值

转载 作者:行者123 更新时间:2023-11-29 00:05:37 27 4
gpt4 key购买 nike

我正在通过数据库方法使用 Entity Framework 在 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

Controller

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;

然后改变 Action 方法。

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);

关于mysql - 存储过程不返回 MVC 5 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27596869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com