none
como obtener un valor en un label desde un commado RRS feed

  • Pregunta

  • he intentado obtener el nombre de una persona al ingresar su dni por un textbox y que se vea su nombre en un label pero no lo consigo aun . intente colocar mi codigo en el textchanged pero no fuinciono pense que en el elevente lost focus se pdira pero igual no se puede. espero me puedan ayudar muchas gracias de antemano .saludos

     

    codigo:

     

     

    Private Sub txtdni_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdni.LostFocus

            Dim comando As New SqlCommand()

            comando.Connection = cn

            cn.Open()

            comando.CommandText = "select ,nombre from empleado where cod_empleado=@cod_empleado"

            comando.CommandType = CommandType.Text

            comando.Parameters.Add("@cod_empleado", SqlDbType.VarChar, 15).Value = txtdni.Text

            Dim rdr As SqlClient.SqlDataReader

            rdr = comando.ExecuteReader

            Me.lblempleado.Text = rdr.Item("apellidos").ToString

        End Sub

    viernes, 14 de octubre de 2011 16:27

Respuestas

  • bueno di con el error era que en la query estaba seleccionanado el campo nombre y el reader esta llenandose con el item apellido que no estaba en el query aca pongo el codigo para alguien que lo necesite.

    lo raro es que no me mostraba la exepcion el vs 2008 solo no funcionaba en codigo. muchas gracias  leandro y mariano.

     

    Private Sub txtdni_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdni.LostFocus

            cn.Open()

     

            Dim query As String = "select nombre from empleado where cod_empleado=@cod_empleado"

            Dim comando As New SqlCommand(query, cn)

     

     

            comando.Parameters.Add("@cod_empleado", SqlDbType.VarChar, 15).Value = txtdni.Text

     

            Dim rdr As SqlClient.SqlDataReader = comando.ExecuteReader

     

            If rdr.Read() Then

                Me.lblempleado.Text = rdr.Item("nombre").ToString

            End If

     

        End Sub

    • Marcado como respuesta diego_lescano viernes, 14 de octubre de 2011 19:30
    viernes, 14 de octubre de 2011 18:29

Todas las respuestas

  • no te estas posicionando en el reader

    Private Sub txtdni_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdni.LostFocus
            cn.Open()
    
            Dim query As String = "select ,nombre from empleado where cod_empleado=@cod_empleado"
            Dim comando As New SqlCommand(query, cn)
    
    
            comando.Parameters.Add("@cod_empleado", SqlDbType.VarChar, 15).Value = txtdni.Text
    
            Dim rdr As SqlClient.SqlDataReader = comando.ExecuteReader
    
           If rdr.Read() Then 
               Me.lblempleado.Text = rdr.Item("apellidos").ToString
          End If
    
        End Sub
    

    recuerda usar el Read()

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 14 de octubre de 2011 16:38
  • Hola

    Proba de poner despues de la instrucción:

    rdr = comando.ExecuteReader

    rdr.read()

    Me.lblempleado.Text = rdr.Item("apellidos").ToString

     

    Espero tus comentarios

    Saludos,


    Mariano Llarin.-
    viernes, 14 de octubre de 2011 16:38
  • Mariano

    recuerda poner el Read() al menso en un If, para saber si hay una posocionm a la cual acceder, porque sino despeus falla con un error cuando lees el campo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 14 de octubre de 2011 16:54
  • no me habia fijado eso de posicionarse en el reader pero ahora el problema es que cuando imgreso el dni el label no cambia de valor en su propiedad text probe con el codigo que me brindaste leandro pero no cambia luego intente con este de aca basandome en el tuyo pero nada , supongo que no es muy dinamico usar un label ?  pensaba usar su texto como parametro en un sp espero me puedan ayudar. gracias

     cn.Open()

            Dim nombre As String

            Dim query As String = "select ,nombre from empleado where cod_empleado=@cod_empleado"

            Dim comando As New SqlCommand(query, cn)

            comando.Parameters.Add("@cod_empleado", SqlDbType.VarChar, 15).Value = txtdni.Text

            Dim rdr As SqlClient.SqlDataReader = comando.ExecuteReader

            Do While rdr.Read

                nombre = rdr.GetValue(0)

                lblempleado.Text = nombre

            Loop 

    viernes, 14 de octubre de 2011 17:01
  • bueno di con el error era que en la query estaba seleccionanado el campo nombre y el reader esta llenandose con el item apellido que no estaba en el query aca pongo el codigo para alguien que lo necesite.

    lo raro es que no me mostraba la exepcion el vs 2008 solo no funcionaba en codigo. muchas gracias  leandro y mariano.

     

    Private Sub txtdni_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdni.LostFocus

            cn.Open()

     

            Dim query As String = "select nombre from empleado where cod_empleado=@cod_empleado"

            Dim comando As New SqlCommand(query, cn)

     

     

            comando.Parameters.Add("@cod_empleado", SqlDbType.VarChar, 15).Value = txtdni.Text

     

            Dim rdr As SqlClient.SqlDataReader = comando.ExecuteReader

     

            If rdr.Read() Then

                Me.lblempleado.Text = rdr.Item("nombre").ToString

            End If

     

        End Sub

    • Marcado como respuesta diego_lescano viernes, 14 de octubre de 2011 19:30
    viernes, 14 de octubre de 2011 18:29