none
autocompletar textbox RRS feed

  • Pregunta

  • buenas tardes a todos!! tengo un código para autocompletar textbox pero me da error y no logro encontrarlo, si alguien puede orientarme se lo agradecería.

    lo que deseo es autocompletar en el txt_razonsocial_cliente el nombre del cliente. Este campo viene de la base de datos (sql server)

     Sub autoCompletarTexbox(ByVal campoTexto As TextBox)
            Try
                Dim autocompletar = (From auto In datacontext.CLIENTE
                                    Select auto.CLI_razon_social).ToList()(0)
                While respuesta.Read
                    campoTexto.AutoCompleteCustomSource.Add(respuesta.Item("CLI_razon_social"))
                End While
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub

    --------------

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                  autoCompletarTexbox(txt_razonsocial_cliente)
        End Sub

    el error que me da es: referencia a objeto no establecida como instancia de un objeto.

    martes, 27 de noviembre de 2018 20:02

Respuestas

  • hola valeria

    creo que mejor te funcionaria un codigo asi y utilizando las propiedades del autocomplete del control textbox que se configuran en este caso en el form load

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            txt_razonsocial_cliente.AutoCompleteMode = AutoCompleteMode.Suggest
            txt_razonsocial_cliente.AutoCompleteSource = AutoCompleteSource.CustomSource
             txt_razonsocial_cliente.AutoCompleteCustomSource=CargarRazonsocial()
        End Sub
    

    Como puedes observar creas un metodo cargarRazonsocial() para recorrer la tabla donde tienes todas las razones sociales y poderlas utilizar como autocomplete

    public Function CargarRazonSocial() As DataTable
    Dim dtRS As New DataTable
    using cn as new sqlConnection with
    { .connetionString ="tu cadena de conexion"}
    	usign comand As New sqlCommand With {.Connection=cn}
             cmd.comandText="tu query"
             cn.Open()
             dtRS.Load(cmdExecuteReader)
      End Using'del comand
    End Using'sql conexion
    Return dtRS
    EndFunction

    suerte

    • Propuesto como respuesta Pablo Rubio miércoles, 28 de noviembre de 2018 15:53
    • Marcado como respuesta Pablo Rubio lunes, 10 de diciembre de 2018 16:20
    martes, 27 de noviembre de 2018 22:45

Todas las respuestas

  • hola valeria

    creo que mejor te funcionaria un codigo asi y utilizando las propiedades del autocomplete del control textbox que se configuran en este caso en el form load

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            txt_razonsocial_cliente.AutoCompleteMode = AutoCompleteMode.Suggest
            txt_razonsocial_cliente.AutoCompleteSource = AutoCompleteSource.CustomSource
             txt_razonsocial_cliente.AutoCompleteCustomSource=CargarRazonsocial()
        End Sub
    

    Como puedes observar creas un metodo cargarRazonsocial() para recorrer la tabla donde tienes todas las razones sociales y poderlas utilizar como autocomplete

    public Function CargarRazonSocial() As DataTable
    Dim dtRS As New DataTable
    using cn as new sqlConnection with
    { .connetionString ="tu cadena de conexion"}
    	usign comand As New sqlCommand With {.Connection=cn}
             cmd.comandText="tu query"
             cn.Open()
             dtRS.Load(cmdExecuteReader)
      End Using'del comand
    End Using'sql conexion
    Return dtRS
    EndFunction

    suerte

    • Propuesto como respuesta Pablo Rubio miércoles, 28 de noviembre de 2018 15:53
    • Marcado como respuesta Pablo Rubio lunes, 10 de diciembre de 2018 16:20
    martes, 27 de noviembre de 2018 22:45
  • buenas noches greg_dorian..gracias por tu respuesta!! 

    lo que quería lograr con mi código es que justamente la cadena de conexión no quede "dentro" de la aplicación y si poder modificarla según la necesidad desde, por ejemplo un blog de notas..ésta se genera al crear el instalador de la aplicación. (del blog de notas yo puedo modificar el app.config de la cadena). esto es así porque cada pc se conecta a una base de datos distinta, con cadena de conexión distinta.

    en visual basic he creado un dataclases y con consultas linq accedo a los datos de la base. por eso mi código lo arme así, pero bueno..no he logrado solucionar el error todavía. 

    espero haber sido un poco mas clara en mi intención y de nuevo gracias por tu atención!

    jueves, 29 de noviembre de 2018 0:56