我希望我的代码显示我输入的日期是否在我的数据库中重叠。但问题是这段代码正在比较我的数据库中的每条记录。帮帮我,对不起我的坏英语
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
connector()
Dim READER As MySqlDataReader
Try
MysqlConn.Open()
Dim query As String
Dim dbCheckIn, dbCheckOut As Date
'' query = "SELECT * FROM reservationtable WHERE CheckIn <= '" & dtpCO.Text & "' And CheckOut >= '" & dtpCI.Text & "'"
query = "SELECT CheckIn, CheckOut FROM reservationtable"
COMMAND = New MySqlCommand(query, MysqlConn)
READER = COMMAND.ExecuteReader
While READER.Read
dbCheckIn = READER("CheckIn")
dbCheckOut = READER("CheckOut")
Dim a As String
a = dbCheckIn <= dtpCO.Text And dbCheckOut >= dtpCI.Text
If a = True Then
MsgBox("Date Not Available!")
ElseIf a = Not True Then
MsgBox("Date Available!")
End If
End While
updateGrid()
MysqlConn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
MysqlConn.Dispose()
End Try
End Sub
答案 0 :(得分:0)
尝试将WHERE子句添加到SQL语句中以将结果限制为任何被视为重叠的内容,因此如果返回任何记录,则它是重叠的,如果没有返回则不是。例如:
Dim textAsDate = New DateTime.Parse(dtpCO.Text)
Dim query = "SELECT CheckIn FROM reservationtable
WHERE CheckIn <= " + txtAsDate + " AND CheckOut >= " + txtAsDate
Dim command= New MySqlCommand(query, MysqlConn)
Using dr As SqlDataReader = command.ExecuteReader()
Dim datatable= New DataTable()
datatable.Load(dr)
If datatable.Rows.Count > 0 Then
' Not available
Else
' Available
End If
End Using
现在您应该能够检查是否有任何值返回,如果是,则发送&#34;日期不可用&#34;消息。