-1
我正在嘗試做一個酒店預訂系統。然而,可用性讓我有點困惑。我有大約15個按鈕,我可以將數字保存到數據庫,但是當表單加載/日期更改時。我需要按鈕保持紅色並且不可點擊。例如,如果我有一個房間11從3/06/17
到5/06/17
預訂,那麼我需要按鈕從3/06/17
保持紅色到4/06/17
,因爲房間仍然可以在清潔後在5/06/17
上預訂。我希望這是有道理的。以下是我正在使用的代碼嘗試執行此操作。該代碼確實運行,但該按鈕不會變紅。使用Access數據庫的可用性
我在想我的SQL語句是否需要改變,但我不太確定。我對編碼相當陌生,所以解釋會很有幫助。謝謝。
Private Sub ReadRecords()
Dim btn As Button = Nothing
Dim BookingFound As Boolean = False
Using MyConn As New OleDbConnection
MyConn.ConnectionString = connString
MyConn.Open()
Dim check As String = "SELECT COUNT(*) FROM [BookingInformation] WHERE [Date In] = '" & dtpDateIn.Value.Date & "' AND [Date Out] = '" & dtpDateOut.Value.Date & "'"
Dim BookingExists As Boolean = False
Dim command As OleDbCommand = New OleDbCommand(check, MyConn)
Using reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
If reader(0) = 0 Then
BookingExists = False
Else
BookingExists = True
End If
End While
End Using
If BookingExists = True Then
Dim getData As String = "SELECT * FROM [BookingInformation] WHERE [Date Out] = '" & dtpDateOut.Text & "'"
Dim command2 As OleDbCommand = New OleDbCommand(getData, MyConn)
Using reader As OleDbDataReader = command2.ExecuteReader()
While reader.Read()
BookingFound = True
strDateIn = reader("Date In").ToString()
strDateOut = reader("DateOut").ToString
strRoomNumber = reader("Room Number").ToString
End While
If BookingFound = True Then
btn.BackColor = Color.Red
End If
End Using
End If
MyConn.Close()
End Using
End Sub
Private Sub Room_Booking_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ReadRecords()
End Sub
你不也需要使用房間號在查詢中替換「?我認爲你不必管理一個房間 – Steve
使按鈕enable = false禁用。 – jdweng
這是學習如何使用Visual Studio內置的優秀調試器的絕佳機會。設置斷點並觀察代碼運行時發生的變量。要做的第一件事就是學習如何使用SQL參數 - 這是多年來創建SQL的正確方法。 – Plutonix