改变布尔值

时间:2012-04-23 10:05:52

标签: asp.net database asp.net-mvc-3

您好我正在使用ASP.NET中的酒店预订项目。 我想制作一个过滤器,以便我可以按日期(例如6月1日到6月5日)搜索可用的房间,然后保留那个房间。我怎样才能将该房间的状态更改为“不可用”期间,所以想要在15和50之间保留那个房间的人可以这样做。房间的状态在我的数据库中是布尔值。

enter image description here

2 个答案:

答案 0 :(得分:0)

'Status'值会发生变化并且基于多个内容,因此您不应该将其存储在房间表中。

在这种情况下,您需要做的是编写一个查看日期范围的查询,然后根据您的预订表返回状态。因此,用户选择日期范围并执行查询,并返回状态为可用或已预订的所有日期的列表。

想象一下,如果你这样做了

SELECT * FROM Reservation res LEFT JOIN Room ON res.Room_ID = Room.RoomId

您的房间表的状态为“可用”,因此每行都会返回可用状态。如果您将此状态设置为不可用,则即使房间实际可用,也会返回每行不可用的状态。

答案 1 :(得分:0)

尝试这样的事情

在UI上显示数据之前,您必须每次操作房间表

var objrum = rum.toList().asQueryable(); // fetches all the rooms
var objreservation = reservation.toList().asQueryable(); // fetches all reservation

foreach(var res in objreservation)
{
    foreach(var rum in objrum)
    {
        if(res.roomid == rum.rumid)
        {
            if(res.checkindate >= currentcheckindate && res.checkoutdate <= currentcheckoutdate)
            {
                rum.status = false // set to unavailable
            }
            else
                rum.status = true // set to available
        }
    }
}

从房间表中获取数据以便在您的用户界面上显示