如何验证预留系统的预留时间

问题描述 投票:0回答:1

我正在做一个小组项目,试图建立一个简单的会议室预订系统,但是我找不到一种方法来进行验证,以防止人们在同一时间预订同一房间。

下面的代码仅阻止人们在同一时间预订,如果一个人在上午8点至上午10点预订房间,则该代码可以阻止其他用户同时预订同一房间。但是另一位用户将可以在同一天的上午9点至上午11点预订同一房间。

        Dim theQuery As String = "Select * from Reservation where VenueID = @VenueID and ReserveStartTime = @ReserveStartTime or ReserveStartTime = @ReserveEndTime and ReserveEndTime = @ReserveEndTime or ReserveEndTime= @ReserveStartTime"
        Dim check As SqlCommand = New SqlCommand(theQuery, Conn)
        check.Parameters.AddWithValue("@ReserveEndTime", DateTime.Parse(cboEndTime.Text).ToShortTimeString)
        check.Parameters.AddWithValue("@ReserveStartTime", DateTime.Parse(cboStartTime.Text).ToShortTimeString)
        check.Parameters.AddWithValue("@VenueID", Integer.Parse(grdVenueReservation.SelectedCells(0).Value.ToString))



        'to prevent the users from booking venue at the same time
        Dim reader2 As SqlDataReader = check.ExecuteReader


        If reader2.HasRows Then

            MsgBox("Venue is already booked by other staff on the same time and date")


        Else
vb.net
1个回答
0
投票

我认为您需要在select语句中使用BETWEEN运算符。

请检查:

Select data from date range between two dates

问候

然后,请确保您以与数据库字段相同的格式传递DateTime参数。检查:SqlDbType.Date,SqlDbType.DateTime和SqlDbType.DateTime2。

© www.soinside.com 2019 - 2024. All rights reserved.