Vb.net 他接受了答案。。。 con = New OleDbConnection(cs) con.Open() Dim ct As String = "SELECT RoomNo FROM Temp_Reservation WHERE RoomNo='" _ &
他接受了答案。。。Vb.net 他接受了答案。。。 con = New OleDbConnection(cs) con.Open() Dim ct As String = "SELECT RoomNo FROM Temp_Reservation WHERE RoomNo='" _ &,vb.net,ms-access,Vb.net,Ms Access,他接受了答案。。。 con = New OleDbConnection(cs) con.Open() Dim ct As String = "SELECT RoomNo FROM Temp_Reservation WHERE RoomNo='" _ & cmbRoomNo.Text & "' AND DateOut BETWEEN #" & dtpDateIN.Text _ & "# AND #" & dtpDateOut.Text _ &
con = New OleDbConnection(cs)
con.Open()
Dim ct As String = "SELECT RoomNo FROM Temp_Reservation WHERE RoomNo='" _
& cmbRoomNo.Text & "' AND DateOut BETWEEN #" & dtpDateIN.Text _
& "# AND #" & dtpDateOut.Text _
& "# AND Status='Confirmed' AND DateIN < #" & dtpDateOut.Text & "#"
cmd = New OleDbCommand(ct)
cmd.Connection = con
rdr = cmd.ExecuteReader()
If rdr.Read Then
MessageBox.Show("Selected Room is already booked", "Input Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
If Not rdr Is Nothing Then
rdr.Close()
End If
Exit Sub
End If
Temp_Reservation.DateIn < new_out AND Temp_Reservation.DateOut > new_in
==> booking conflict!
Reservation A: 26/12/2013 to 28/12/2013
Reservation B: 10/01/2014 to 15/01/2014
Reservation new: 01/01/2014 to 05/01/2014
A_in(26/12/2013) < new_out(05/01/2014) AND A_out(28/12/2013) > new_in(01/01/2014)
===> True AND False = False (which means: no conflicting record will be returned)
B_in(10/01/2014) < new_out(05/01/2014) AND B_out(15/01/2014) > new_in(01/01/2014)
===> False AND True = False
OK: A_in >= B_out OR A_out <= B_in
CONFLICT: A_in < B_out AND A_out > B_in
Dim ct As String
ct = String.Format("Select RoomNo from Temp_Reservation where RoomNo=""{0}""" & _
"And Status = ""Confirmed"" And " & _
"(#{1}# < DateOut And #{1}# >= DateIn) " & _
"Or (#{2}# > DateIn And #{2}# <= DateOut) " & _
"Or (#{1}# < DateIn And #{2}# > DateOut)", _
cmbRoomNo.Text, dtpDateIN.Text, dtpDateOut.Text)