2012-04-23 2 views
0

Привет Я работаю над проектом резервирования отелей в ASP.NET. Я хочу сделать фильтр, чтобы я мог искать комнату, доступную по дате (например, с 1 июня по 5 июня), и после этого зарезервировать эту комнату. Как я могу сделать, чтобы изменить статус этой комнаты на «недоступно» для этот период, так что кто-то, кто хочет зарезервировать эту комнату от 15 мая до 30 лет, может это сделать. Состояние моей комнаты является логическим значением в моей базе данных.change boolean value

enter image description here

+0

что вы до сих пор пытались? –

+0

Пока я показываю всю комнату с имеющимся статусом. Но статус задается, когда я представляю комнату в базе данных. Но я не знаю, как изменить стадию, и если можно установить статус комнаты как истинный для периода и затем false для другого периода – jonny

+0

Вы можете обработать это для цели пользовательского интерфейса, не используя поле статуса в БД, только дату проверки и дату проверки ... –

ответ

0

попробовать что-то вроде этого

перед отображением данных на пользовательском интерфейсе, вы должны управлять вашей гостинный стол каждый раз

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

+0

делать изменения в запросе, так как ваше использование в коде может быть linq для объекта или linq к объекту ... –

+0

Ваш пример может быть свернут в меньшее выражение LINQ/Lambda. – James

+0

yuppp, вы правы ... –

0

The 'Status' изменения стоимости и основывается на нескольких вещах, так что вы не должны действительно сохранить его на вашем столе номер.

Что вам нужно сделать в этом случае - написать запрос, который смотрит на диапазон дат, а затем возвращает статус на основе вашей таблицы бронирования. Таким образом, пользователь выбирает диапазон дат и запрос выполняется и возвращает список всех дней со статусом доступных или забронированных.

Представьте себе, если вы сделали это

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

Ваш номер таблица имеет статус Доступный поэтому он всегда будет возвращаться для каждой строки. Если у вас этот статус недоступен, он будет недоступен для каждой строки, даже если комната действительно доступна.