0
オンラインで予約している部屋に問題があります。C#予約可能な部屋確認可能
は、私は3つのテーブル以下のようにしました:
表Room
:
表BookingHeader
:
表BookingItem
:
このコードに問題があります。それは誤りではありませんが、部屋は他の予約のために予約できません。部屋はbooking_id
で予約されており、日付は返されません。
for (int countt = 1; countt <= totalcc; countt++)
{
DataTable dtRoom = new DataTable();
string Sql = ("SELECT TOP 1 rooms.Room_ID FROM TB_MAS_Room rooms
WHERE rooms.Room_ID NOT IN(SELECT t1.Room_ID FROM TB_TRA_BookingItem t1
INNER JOIN TB_TRA_BookingItem t2 ON t1.Room_ID = t2.Room_ID
INNER JOIN TB_TRA_BookingHeader t3 ON t2.Booking_ID = t3.Booking_ID
WHERE not ([DateOut] < t3.DateIn or [DateIn] > t3.DateOut))");//new
SqlCommand sqlCom = new SqlCommand(Sql,con);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlCom);
da.Fill(dtRoom);
if(dtRoom.Rows.Count>0)
{
SqlCommand sc = new SqlCommand("INSERT INTO TB_TRA_BookingItem
([Booking_ID],[BookingItemID],[Room_ID])
VALUES('"+ id +"','"+ countt +"','"+ dtRoom.Rows[0]["Room_ID"].ToString() +"')",con);
sc.ExecuteNonQuery();
}
else
{
//if room not avialable
}
con.Close();
}
どうすればいいですか?
私のコードでは分からないことを説明してください。
あなたは「予約された」または1-0 するには、その部屋の状況を更新されない理由は、テーブルルームRoomStatusビットに列を追加する必要があります