Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho um sistema de agendamento para laboratório de informatica, onde o professor digita a data e escolhe a aula que ele dará (ex. 1aula a 2aula). Uma vez agendado a aula outro professor não poderia usar o horário agendado, mas o sistema esta com essa falha permitindo um outro professor agendar uma aula já agendada dentro de um intervalo.
Ex.: Prof1
Aula1 até aula5
Prof2
Aula3 até aula4
O sistema não poderia permitir o agendamento do prof2 pois as aulas3 e aual4 esta agendada para o prof1.
Segue o código: o q esta em vermelho é a consulta SQL para saber se a aula já esta agendada ou não
Dim myCB As String = "select count(*) from tblreserva where colegio=@col and escola=@esc and data=@dat and (aulainicio between @aula1 and @aula2 or aulafim between @aula1 and @aula2)"
o mesmo esta dentro do código abaixo
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Cn.Open()
Dim dat2 As SqlDataAdapter
Dim ds2 As DataSet
Dim myLin As SqlCommand = Cn.CreateCommand()
Dim myCB As String = "select count(*) from tblreserva where colegio=@col and escola=@esc and data=@dat and (aulainicio between @aula1 and @aula2 or aulafim between @aula1 and @aula2)"
myLin.CommandText = myCB
myLin.Parameters.Add("@dat", SqlDbType.NVarChar).Value = editData.Text.Trim
myLin.Parameters.Add("@col", SqlDbType.Bit).Value = CheckBox1.Checked
myLin.Parameters.Add("@esc", SqlDbType.Bit).Value = CheckBox2.Checked
myLin.Parameters.Add("@aula1", SqlDbType.NVarChar).Value = DropDownList1.SelectedValue.Trim
myLin.Parameters.Add("@aula2", SqlDbType.NVarChar).Value = DropDownList2.SelectedValue.Trim
dat2 = New SqlDataAdapter(myLin)
ds2 = New DataSet
dat2.SelectCommand = myLin
Dim dr1 As SqlDataReader
Dim resultado As Object = myLin.ExecuteScalar
If Not resultado Is Nothing AndAlso Convert.ToInt32(resultado) > 0 Then
MessageBox2.ShowMessage("Esse Horario já Foi Agendado!!! Favor Agendar outro Horário!!!")
Else
Me.Label1.Visible = True
Me.editID.Visible = True
Me.editID.Enabled = True
Me.editID.Text = ProximoNumero()
Try
Dim drAux As DataRow
drAux = AgendarDS1.Tables("tblreserva").NewRow
drAux("ID") = editID.Text
drAux("Data") = editData.Text
drAux("AulaInicio") = DropDownList1.SelectedValue
drAux("AulaFim") = DropDownList2.SelectedValue
drAux("Professor") = editProfessor.Text
drAux("Disciplina") = editDisciplina.Text
drAux("Recurso") = editRecurso.Text
drAux("Série") = cboserie.SelectedValue 'editSerie.Text
drAux("Turma") = radioturma.SelectedValue 'editTurma.Text
drAux("Colegio") = CheckBox1.Checked
drAux("Escola") = CheckBox2.Checked
AgendarDS1.Tables("tblreserva").Rows.Add(drAux)
SqlDataAdapter1.Update(AgendarDS1)
MessageBox1.ShowConfirmation("Horário Agendado com Sucesso!!! Agendar Outro Horário???", "NÃO", False, True)
Me.editID.Visible = False
Me.Label1.Visible = False
editID.Text = ""
editData.Text = ""
DropDownList1.SelectedIndex = 0
DropDownList2.SelectedIndex = 0
editProfessor.Text = ""
editDisciplina.Text = ""
editRecurso.Text = ""
cboserie.SelectedIndex = 0
radioturma.ClearSelection()
CheckBox1.Checked = False
CheckBox2.Checked = False
Catch
End Try
Cn.Close()
End If
End SubCarregando comentários...