Система бронирования отелей - наличие свободных номеров (поиск)
Я создаю систему бронирования отелей. Однако, поскольку я не эксперт, он не делает того, что я хочу, чтобы он мог делать. На данный момент этот код не работает, и я не совсем уверен, где он идет не так. Я хочу, чтобы она работала как обычная система бронирования отелей, где, например, если номер был забронирован с 21.02.17 по 23.02.17, то кнопка останется Красной в этот период. Однако он все равно сможет быть забронирован на 23/02/17 (из-за выезда). Как я уже сказал, Я довольно новичок, так что может быть что-то, что уже существует, но просто не совсем понял это.
Кроме того, я думал, должен ли мой str1 быть изменен на что-то вроде
Select * from BookingInformation where theDate between Date In and Date Out and Room Number = 'Something'
Private Sub ReadRecords() Dim btn As Button = Nothing MyConn = New OleDbConnection MyConn.ConnectionString = connString MyConn.Open() str1 = ("SELECT * FROM [BookingInformation] WHERE [Date Out] = '" & dtpDateOut.Value.Date & "'") 'When searching this searches for the data that you are looking for' Dim cmd1 As OleDbCommand = New OleDbCommand(str1, MyConn) dr = cmd1.ExecuteReader While dr.Read() strRoomBooking = dr("Room Booking").ToString strDateIn = dr("Date In").ToString strDateOut = dr("Date Out").ToString If strDateOut > DateTime.Today Then If strRoomBooking = btn.Text Then btn.BackColor = Color.Red End If End If End While MyConn.Close() End Sub Private Sub Room_Booking_Load(sender As Object, e As EventArgs) Handles MyBase.Load ReadRecords() End If
Что я уже пробовал:
Я попробовал код выше, а также заглянул в него и подумал
<pre>Select * from BookingInformation where theDate between Date In and Date Out and Room Number = 'Something'
могут работать
Richard MacCutchan
Это зависит от ваших критериев. Если все типы номеров одинаковы, то вам просто нужно выбрать любой, где запрашиваемые даты не пересекаются с забронированными датами. Таким образом, если RequestedStartDate больше или равен DateBookedStart и меньше DateBookedEnd, бронирование не будет выполнено. Другими словами, RequestedEndDtate должен быть до DateBookedStart, а RequestedStartDate - после DateBookedEnd для каждой подходящей комнаты. Напишите несколько примеров настроек на бумаге, чтобы увидеть, как это должно работать.