2012-04-23 16 views
0

こんにちは、私はASP.NETのホテル予約プロジェクトに取り組んでいます。 (例えば6月1日から6月5日の間に)利用可能な部屋を検索し、その部屋を予約できるようにフィルタを作りたいのですが、その部屋のステータスを「利用できません」に変更するにはどうしたらいいですか?その期間、15〜30の間にその部屋を予約したいと思う誰かがそれを行うことができるようにその部屋の状態は私のデータベースのブール値です。変更ブール値

enter image description here

+0

より何これまでに試したことがありますか? –

+0

これまでのところ私は利用可能な状態のすべての部屋を表示しています。しかし、私はstaを変更する方法はわかりません別の期間はfalse – jonny

+0

DBのステータスフィールドを使用せずに、日付をチェックインして日付をチェックするだけで、UI目的でこれを処理することができます。 –

答えて

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上で表示するための部屋のテーブルからデータをフェッチ

+0

コード内の使用状況に応じて、linq、linqエンティティに... –

+0

あなたの例は、より小さなLINQ /ラムダ式にロールアップできます。 – James

+0

yuppp、あなたは正しいです... –

0

'Status'値が変化し、あなたが本当にあなたの部屋のテーブルに対してそれを保存するはずのように、複数の事柄に基づいています。

この場合、実行する必要があるのは、日付範囲を調べて予約テーブルに基づいてステータスを返すクエリです。したがって、ユーザは日付範囲を選択し、クエリが実行され、利用可能または予約済みのすべての日のリストを返します。あなたは、それは常にすべての単一の行のために利用できる戻りますように、この

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

あなたの部屋のテーブルが使用可能の状態を持っていなかった場合

を想像してみてください。このステータスが利用不可である場合、実際に部屋が利用可能であった場合でも、すべての行で使用不可能に戻ります。

関連する問題