0

嗨,我正在 ASP.NET 中从事酒店预订项目。我想制作一个过滤器,以便我可以按日期(例如 6 月 1 日至 6 月 5 日之间)搜索可用房间,然后预订该房间。我该如何将该房间的状态更改为“不可用”期间,以便想要在 5 月 15 日至 30 日之间预订该房间的人可以这样做。房间的状态是我数据库中的布尔值。

在此处输入图像描述

4

2 回答 2

0

'Status'值会发生变化,并且基于多种因素,因此您不应该将其真正存储在您的房间桌子上。

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

想象一下,如果你这样做

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

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

于 2012-04-23T10:14:55.317 回答
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
        }
    }
}

而不是从房间表中获取数据以显示在您的 UI 上

于 2012-04-23T10:30:36.597 回答