none
Boton buscar: Dato no encontrado RRS feed

  • Pregunta

  • Estimados, tengo la siguiente aplicacion

    y lo que quiero es que cuando ponga un codiugo de trabajador que no este registrado me aparesca un mensaje que diga "Este codigo no esta registrado"

    El codigo que tengo en el boton buscar es el siguiente

     boton buscar
            Dim consulta_buscar As String
            Dim adaptador_buscar As New OleDb.OleDbDataAdapter
            Dim registro_buscar As New DataSet
            Dim lista As Byte 
    
            If TextBox5.Text <> "" Then
                
                consulta_buscar = "SELECT * FROM trabajadores WHERE codigo_trabajador ='" & TextBox5.Text & "'"
    
                adaptador_buscar = New OleDb.OleDbDataAdapter(consulta_buscar, conexion)
    
                registro_buscar = New DataSet
    
                adaptador_buscar.Fill(registro_buscar, "trabajadores")
    
                lista = registro_buscar.Tables("trabajadores").Rows.Count
    
            Else
                MsgBox("Debe ingresar un numero de DNI", vbExclamation, "Campo Vacio")
    
            End If
            If lista <> 0 Then
                DataGridView1.DataSource = registro_buscar
                DataGridView1.DataMember = "trabajadores"
    
            
                TextBox1.Text = registro_buscar.Tables("trabajadores").Rows(0).Item("codigo_trabajador")
                TextBox2.Text = registro_buscar.Tables("trabajadores").Rows(0).Item("nombres")
                TextBox3.Text = registro_buscar.Tables("trabajadores").Rows(0).Item("apellidos")
                TextBox4.Text = registro_buscar.Tables("trabajadores").Rows(0).Item("dni")
    
                'pero si algun valor fuera nulo nos arrogaria error, si hay valores que pueden ser vacios codificar asi:
                'Dim loFila As DataRow = registro.Tables("usuarios").Rows(0)
                'TextBox1.Text = Convert.ToString(loFila.Item("dni"))
    
            End If
    
        End Sub
    por favor si me pudieran ayudar.

    slds.

    jueves, 15 de junio de 2017 0:19

Respuestas

  • Hola

    Ya que tu consulta_buscar es un string, podrías optar por compararlo después de llenarlo y de no contener datos mostrar el mensaje que deseas para luego colocar un exit sub , por ejemplo:

     If TextBox5.Text <> "" Then
                
                consulta_buscar = "SELECT * FROM trabajadores WHERE codigo_trabajador ='" & TextBox5.Text & "'"
    
                'Aquí puedes preguntar:
                If String.IsNullOrEmpty(consulta_buscar) Then
                    MsgBox("Este código no está registrado", vbExclamation, "Alerta")
                Exit Sub
            End If
                adaptador_buscar = New OleDb.OleDbDataAdapter(consulta_buscar, conexion)
    
                registro_buscar = New DataSet
    
                adaptador_buscar.Fill(registro_buscar, "trabajadores")
    
                lista = registro_buscar.Tables("trabajadores").Rows.Count
    
            Else
                MsgBox("Debe ingresar un numero de DNI", vbExclamation, "Campo Vacio")
    
            End If
    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.


    • Editado Brayan De La Cruz jueves, 15 de junio de 2017 0:45 bold
    • Marcado como respuesta eloshmt martes, 18 de julio de 2017 20:08
    jueves, 15 de junio de 2017 0:43

Todas las respuestas

  • Hola

    Ya que tu consulta_buscar es un string, podrías optar por compararlo después de llenarlo y de no contener datos mostrar el mensaje que deseas para luego colocar un exit sub , por ejemplo:

     If TextBox5.Text <> "" Then
                
                consulta_buscar = "SELECT * FROM trabajadores WHERE codigo_trabajador ='" & TextBox5.Text & "'"
    
                'Aquí puedes preguntar:
                If String.IsNullOrEmpty(consulta_buscar) Then
                    MsgBox("Este código no está registrado", vbExclamation, "Alerta")
                Exit Sub
            End If
                adaptador_buscar = New OleDb.OleDbDataAdapter(consulta_buscar, conexion)
    
                registro_buscar = New DataSet
    
                adaptador_buscar.Fill(registro_buscar, "trabajadores")
    
                lista = registro_buscar.Tables("trabajadores").Rows.Count
    
            Else
                MsgBox("Debe ingresar un numero de DNI", vbExclamation, "Campo Vacio")
    
            End If
    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.


    • Editado Brayan De La Cruz jueves, 15 de junio de 2017 0:45 bold
    • Marcado como respuesta eloshmt martes, 18 de julio de 2017 20:08
    jueves, 15 de junio de 2017 0:43
  • Hola @eloshmt

    Puedes hacer algo como ser: adapta el código a tus necesidades

    Propiedad SqlDataReader.HasRows

    Public Shared Function Buscar(Id As String) As AlumnoEntity
                Using cn As OleDbConnection = Conexion.Conectar("default")
                    Using cmd As OleDbCommand = cn.CreateCommand()
                        cmd.CommandText = "SELECT AlumnoId, Nombre, Direccion, Telefono, Email FROM Alumnos WHERE AlumnoId=@Id"
                        cmd.Parameters.AddWithValue("@AlumnoId", Id)
                        Using reader As OleDbDataReader = cmd.ExecuteReader()
                            If reader.HasRows Then
                                Dim alumno As New AlumnoEntity()
                                If reader.Read() Then
                                    alumno.AlumnoId = Convert.ToString(reader("AlumnoId"))
                                    alumno.Nombre = Convert.ToString(reader("Nombre"))
                                    alumno.Direccion = Convert.ToString(reader("Direccion"))
                                    alumno.Telefono = Convert.ToString(reader("Telefono"))
                                    alumno.Email = Convert.ToString(reader("Email"))

                                End if
                                Return alumno

                            Else
                                Return Nothing

                            End if

                        End using

                    End using

                End using

    End Function


    Llamar al método

    Private Sub BuscarAlumno()
                If Not String.IsNullOrEmpty(IdRows) Then
                    Dim model As AlumnoEntity = Alumno.Buscar(IdRows)
                    If model IsNot Nothing Then
                        lblCodigo.Text = model.AlumnoId
                        txtNombre.Text = model.Nombre
                        txtDireccion.Text = model.Direccion
                        txtTelefono.Text = model.Telefono
                        txtEmail.Text = model.Email
                    Else
                      string _mensaje = "Este codigo no esta registrado."
                      Avisos.Mensaje(MessageBoxIcon.Information, "AVISO", _mensaje)
                    End if
                End if
            End Sub
    

    Espero la información proporcionada te sea de utilidad

    Saludos


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 15 de junio de 2017 1:15
  • Brayan, gracias por la solucion.
    martes, 18 de julio de 2017 20:08