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