私はホテルの予約システムを作ろうとしています。しかし、入手可能性が私を少し混乱させている。私はデータベースに番号を保存することができますが、フォームの読み込み/日付が変更されたときに約15のボタンがあります。私はボタンを赤くして止められないようにする必要があります。たとえば、3/06/17
から5/06/17
まで部屋11を予約した場合、3/06/17
から4/06/17
まではボタンを赤色のままにしておく必要があります。この部屋は、清掃後に5/06/17
で予約することができます。私はこれが理にかなってほしい。以下は私がこれをしようとしているコードです。コードは実行されますが、ボタンは赤くなりません。アクセスデータベースを使用している可用性
私は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
で 'を置換され
代わりの
を試してみてください?ただ1つの部屋を管理する必要はないと思う。 – Steve
無効にするには、enable = falseボタンをオンにする。 – jdweng
これはVisual Studioに組み込まれた偉大なデバッガの使い方を学ぶ絶好の機会です。ブレークポイントを設定し、コードが実行されるときに何が起こるかを観察します。最初に行うことは、SQLパラメータの使用方法を学ぶことです。これは、SQLを数年にわたって作成する正しい方法ではありません。 – Plutonix