您好我正在使用ASP.NET中的酒店预订项目。 我想制作一个过滤器,以便我可以按日期(例如6月1日到6月5日)搜索可用的房间,然后保留那个房间。我怎样才能将该房间的状态更改为“不可用”期间,所以想要在15和50之间保留那个房间的人可以这样做。房间的状态在我的数据库中是布尔值。
答案 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
}
}
}
从房间表中获取数据以便在您的用户界面上显示