none
validar Codigo Consulta (sistema estacionamiento)

    Pregunta

  • buenas tardes

    amigos te estoy haciendo una aplicación de estacionamiento de vehículo estoy en el formulario de validacion de codigo

    la tabla se llamada entrada de vehiculo

    formada capas

    id,fechaentradaHora, placa , Codigo

     If objnegociobusquedaexisteCodigo.ExisteCodigo(TxtBusquedaCodigo.Text) Then

    el problema en esta linea trato de validar el codigo

    entoces con una consulta sql trato de validar si existe ese codigo que muestre un mesaje diciento que existe y se salga pero no hace sigue directo . 

    trabajo en capas vb.net sql server

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles BtnBuscar.Click
            Dim objregistrormostrar As New BLLRegistroTicker
            Dim evergistromostrar As New VregistroEntrada
          
    
            If TxtBusquedaCodigo.Text.Trim = "" Then
                    MsgBox("DEBES INGRESAR DATOS DE CODIGO PARA LA BUSQUEDA", MsgBoxStyle.Exclamation, "DATOS VACIOS")
                Else
                    evergistromostrar.Codigo = TxtBusquedaCodigo.Text
                
                If objnegociobusquedaexisteCodigo.ExisteCodigo(TxtBusquedaCodigo.Text) Then
                    MessageBox.Show("el codigo ya existe.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                 
                Else
                    evergistromostrar = objregistrormostrar.GetCodigo(Convert.ToInt32(TxtBusquedaCodigo.Text))
                    If evergistromostrar.Codigo > 0 Then
    
                        TxtPlaca.Text = evergistromostrar.Placa
                        TxtCodigo.Text = evergistromostrar.Codigo
                        TxtFechaHoraSalida.Text = evergistromostrar.FechaHoraEntrada
    
                           MessageBox.Show("Los datos fueron mostrados", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                    End If
                End If
    
               
            End If
            
        End Sub
     

     If objnegociobusquedaexisteCodigo.ExisteCodigo(TxtBusquedaCodigo.Text) Then problema en linea trato de validar el codigo

    este codigo lo que hace consulta en la base datos el codigo del vehiculo y deberia mostrar un mesaje codigo ya ingresado pero no entra 

    capa negocio

     Public Function ExisteCodigo(Codigo As Integer) As Boolean
            Dim objCodigoBarra As New DaoInsertTicker
            Dim Result As Boolean = False
            Try
                If objCodigoBarra.ExisteCodigo(Codigo) Then
                    Result = True
                End If
            Catch ex As Exception
                Throw New Exception(ex.Message)
            End Try
            Return Result
        End Function

    capa datos

    Public Function ExisteCodigo(Codigo As Integer) As Boolean
            Dim Conn As New SqlConnection(conexion.Connectionstring)
            Dim Cmd As New SqlCommand
            Dim Result As Boolean = False
            Try
                Conn.Open()
                Cmd.CommandText = "Select Codigo From EntradaVehiculo Where Codigo=@Codigo"
                Cmd.CommandType = CommandType.Text
                Cmd.Connection = Conn
                Cmd.Parameters.Add("@Codigo", SqlDbType.VarChar).Value = Codigo
    
                Dim reader As SqlDataReader = Cmd.ExecuteReader
                If reader.HasRows Then
                    Result = True
                End If
                reader.Close()
            Catch ex As Exception
                Throw New Exception(ex.Message)
            End Try
            Return Result
        End Function




    • Editado djnilo viernes, 28 de octubre de 2016 18:54
    viernes, 28 de octubre de 2016 18:41

Respuestas

  • Hola djnilo,

    Si solo vas a comprobar la existencia de un código en la BD sería más factible el uso de ExecuteScalar, por medio de una consulta mediante el Count(*).

    - Capa Datos :

       Public Function ExisteCodigo(ByVal Codigo As Integer) As Boolean
            Using Conn As New SqlConnection("MiCadenaConexion")
                Conn.Open()
    
                Dim query = "Select Count(*) From EntradaVehiculo Where Codigo = @Codigo"
                Dim Cmd As New SqlCommand(query, Conn)
                Cmd.Parameters.AddWithValue("@Codigo", Codigo)
    
                'Si existe retorna True, caso contrario False
                Return CInt(Cmd.ExecuteScalar) > 0
            End Using
        End Function

    - Capa Negocio :

      Public Function ExisteCodigo(ByVal Codigo As Integer) As Boolean
           Return New DaoInsertTicker().ExisteCodigo(Codigo)
       End Function


    Y en el evento del botón :

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                If TxtBusquedaCodigo.Text.Trim() = String.Empty Then
                    MsgBox("DEBES INGRESAR DATOS DE CODIGO PARA LA BUSQUEDA",
                           MsgBoxStyle.Exclamation, "DATOS VACIOS")
                    Exit Sub 'Sale del evento
                End If
    
                Dim objnegociobusquedaexisteCodigo As New AlgunaCapa
                If objnegociobusquedaexisteCodigo.ExisteCodigo(CInt(TxtBusquedaCodigo.Text)) Then
                    MessageBox.Show("el codigo ya existe.", "Advertencia",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    Exit Sub 'Sale del evento
                End If
    
                'Si no está registrado continua .... demás código...
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)  'Captura algún error
            End Try
        End Sub

    Como puedes ver muestro el mensaje y después ejecuto el Exit Sub el cual me permitirá salir del evento sin ejecutar los siguiente.

    Por cierto, si tu método necesita un valor Integer porque le envías un valor tipo cadena ?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta djnilo lunes, 31 de octubre de 2016 0:02
    viernes, 28 de octubre de 2016 19:19

Todas las respuestas

  • Hola djnilo,

    Si solo vas a comprobar la existencia de un código en la BD sería más factible el uso de ExecuteScalar, por medio de una consulta mediante el Count(*).

    - Capa Datos :

       Public Function ExisteCodigo(ByVal Codigo As Integer) As Boolean
            Using Conn As New SqlConnection("MiCadenaConexion")
                Conn.Open()
    
                Dim query = "Select Count(*) From EntradaVehiculo Where Codigo = @Codigo"
                Dim Cmd As New SqlCommand(query, Conn)
                Cmd.Parameters.AddWithValue("@Codigo", Codigo)
    
                'Si existe retorna True, caso contrario False
                Return CInt(Cmd.ExecuteScalar) > 0
            End Using
        End Function

    - Capa Negocio :

      Public Function ExisteCodigo(ByVal Codigo As Integer) As Boolean
           Return New DaoInsertTicker().ExisteCodigo(Codigo)
       End Function


    Y en el evento del botón :

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                If TxtBusquedaCodigo.Text.Trim() = String.Empty Then
                    MsgBox("DEBES INGRESAR DATOS DE CODIGO PARA LA BUSQUEDA",
                           MsgBoxStyle.Exclamation, "DATOS VACIOS")
                    Exit Sub 'Sale del evento
                End If
    
                Dim objnegociobusquedaexisteCodigo As New AlgunaCapa
                If objnegociobusquedaexisteCodigo.ExisteCodigo(CInt(TxtBusquedaCodigo.Text)) Then
                    MessageBox.Show("el codigo ya existe.", "Advertencia",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    Exit Sub 'Sale del evento
                End If
    
                'Si no está registrado continua .... demás código...
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)  'Captura algún error
            End Try
        End Sub

    Como puedes ver muestro el mensaje y después ejecuto el Exit Sub el cual me permitirá salir del evento sin ejecutar los siguiente.

    Por cierto, si tu método necesita un valor Integer porque le envías un valor tipo cadena ?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta djnilo lunes, 31 de octubre de 2016 0:02
    viernes, 28 de octubre de 2016 19:19
  • Hola djnilo,

    Si solo vas a comprobar la existencia de un código en la BD sería más factible el uso de ExecuteScalar, por medio de una consulta mediante el Count(*).

    - Capa Datos :

       Public Function ExisteCodigo(ByVal Codigo As Integer) As Boolean
            Using Conn As New SqlConnection("MiCadenaConexion")
                Conn.Open()
    
                Dim query = "Select Count(*) From EntradaVehiculo Where Codigo = @Codigo"
                Dim Cmd As New SqlCommand(query, Conn)
                Cmd.Parameters.AddWithValue("@Codigo", Codigo)
    
                'Si existe retorna True, caso contrario False
                Return CInt(Cmd.ExecuteScalar) > 0
            End Using
        End Function

    - Capa Negocio :

      Public Function ExisteCodigo(ByVal Codigo As Integer) As Boolean
           Return New DaoInsertTicker().ExisteCodigo(Codigo)
       End Function


    Y en el evento del botón :

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                If TxtBusquedaCodigo.Text.Trim() = String.Empty Then
                    MsgBox("DEBES INGRESAR DATOS DE CODIGO PARA LA BUSQUEDA",
                           MsgBoxStyle.Exclamation, "DATOS VACIOS")
                    Exit Sub 'Sale del evento
                End If
    
                Dim objnegociobusquedaexisteCodigo As New AlgunaCapa
                If objnegociobusquedaexisteCodigo.ExisteCodigo(CInt(TxtBusquedaCodigo.Text)) Then
                    MessageBox.Show("el codigo ya existe.", "Advertencia",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    Exit Sub 'Sale del evento
                End If
    
                'Si no está registrado continua .... demás código...
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)  'Captura algún error
            End Try
        End Sub

    Como puedes ver muestro el mensaje y después ejecuto el Exit Sub el cual me permitirá salir del evento sin ejecutar los siguiente.

    Por cierto, si tu método necesita un valor Integer porque le envías un valor tipo cadena ?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    excelente respuesta gracias JC NaupaCrispin no sabria como hacerlo no sabia que se podia ocupar exit sub

    lunes, 31 de octubre de 2016 0:03