创建新约会时需要验证时间范围重叠

时间:2017-12-12 19:38:52

标签: vb.net validation time range appointment

如何验证创建新约会时重叠的时间? 我有一个方法(下面的代码),但我无法验证我选择的时间是否与同一日期的现有日期重叠。

mycn.Close()
mycn.Open()
'Done na
Dim SQLQuery As String
SQLQuery = ""
SQLQuery &= " SELECT StartTime,EndTime,Date FROM tblAppointment" & vbCrLf
SQLQuery &= " WHERE ((cast(Dateadd(minute,+1, @StartTime) AS time) BETWEEN @StartTime AND @EndTime) AND Date=@Date AND PatientID=@PatientID)" & vbCrLf
SQLQuery &= " OR ((cast(Dateadd(minute,-1,@EndTime) AS time) BETWEEN @StartTime AND @EndTime) AND Date=@Date AND PatientID=@PatientID) " & vbCrLf

Dim cmd2 As SqlCommand = New SqlCommand(SQLQuery, mycn)
cmd2.Parameters.AddWithValue("Date", dtpDate.Value.ToString("MM dd, yyyy"))
cmd2.Parameters.AddWithValue("StartTime", cmbStartTime.Text)
cmd2.Parameters.AddWithValue("EndTime", cmbEndTime.Text)
cmd2.Parameters.AddWithValue("PatientID", lblPID.Text)

Dim dr1 As SqlDataReader = cmd2.ExecuteReader
If dr1.HasRows Then
    MsgBox("Appointment Existing", MsgBoxStyle.Information, "Appointment")
    cmbStartTime.SelectedIndex = -1
    cmbEndTime.SelectedIndex = -1
    cmbEndTime.Items.Clear()
    cmbEndTime.Enabled = False
    Exit Sub
Else



    'MsgBox("No Record Exist.", MsgBoxStyle.Exclamation, "New Leader Record")
    ReservationDataGridView.Rows.Add(lblID.Text, lblPID.Text, lblPatientName.Text, dtpDate.Value.ToString("MM dd, yyyy"), cmbStartTime.Text, cmbEndTime.Text, cmbServiceType.Text, Val(lblPrice.Text))
    PatientGridView.Enabled = False
    txtPatientSearch.Enabled = False
    iD()


    Dim total As Integer = 0
    For i As Integer = 0 To ReservationDataGridView.RowCount - 1
        total += ReservationDataGridView.Rows(i).Cells(7).Value
        'Change the number 2 to your column index number (The first column has a 0 index column)
        'In this example the column index of Price is 2
        txtSubTotal.Text = total
    Next
End If

mycn.Close()

0 个答案:

没有答案