none
Desplegar datos a un combobox RRS feed

  • Pregunta

  • buenas a todos/as

    con este código intento cargar a un combobox todos los datos. 

    Using Conexion As New OleDbConnection(cadenaConexion)
                Conexion.Open()
    
                Dim consultaSQL As String = "Select Nombre_cliente from Tbla_cliente "
                Dim comando As New OleDbCommand(consultaSQL, Conexion)
               
    
                'LD=LectorDatos 
                Dim LD As OleDbDataReader
                LD = comando.ExecuteReader()
    
                If LD.Read() Then
                    'Establecemos valores de la asignación, en el mismo orden de los valores de la consulta
    
                    ComboBox1.Text = LD.GetString(LD.GetOrdinal("Nombre_cliente"))
                    
                End If
            End Using

    es decir que si en registro cliente hay 5 clientes por ejemplo, el combo debería desplegar los nombres de las pesarosas. 

    domingo, 29 de octubre de 2017 19:18

Respuestas

  • Ya funciona: 

    Using cn As New OleDbConnection(cadenaConexion)
                cn.Open()
                Using cmd As New OleDbCommand("Select Nombre_cliente From Tbla_cliente", cn)
                    Using da As New OleDbDataAdapter(cmd)
                        Dim dt As New DataTable("Nombre_cliente")
                        da.Fill(dt)
                        ComboBox1.DataSource = dt
                    End Using
                End Using
            End Using

    y como le hago para siempre salga de primero  en el Combo esta opción: SELECCIONE


    • Marcado como respuesta EliannyRD lunes, 30 de octubre de 2017 17:02
    lunes, 30 de octubre de 2017 15:59
  • Using cn As New OleDbConnection(cadenaConexion) cn.Open() Using cmd As New OleDbCommand("select [Seleccione] as Nombre_cliente union all (Select Nombre_cliente From Tbla_cliente )", cn) Using da As New OleDbDataAdapter(cmd) Dim dt As New DataTable("Nombre_cliente") da.Fill(dt) ComboBox1.DataSource = dt End Using End Using End Using


    Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!


    • Editado D A N E lunes, 30 de octubre de 2017 16:21
    • Marcado como respuesta EliannyRD lunes, 30 de octubre de 2017 17:02
    lunes, 30 de octubre de 2017 16:20
  • el código me quedó así: 

    Resuelto: 

     Using cn As New OleDbConnection(cadenaConexion)
                cn.Open()
                Using cmd As New OleDbCommand("Select Nombre_cliente From Tbla_cliente", cn)
                    Using da As New OleDbDataAdapter(cmd)
                        Dim dt As New DataTable("Nombre_cliente")
                        da.Fill(dt)
                        Dim dr As DataRow = dt.NewRow()
                        dr(0) = "SELECCIONE"
                        dt.Rows.InsertAt(dr, 0)
                        ComboBox1.DisplayMember = "Nombre_cliente"
                        ComboBox1.DataSource = dt
                    End Using
                End Using
            End Using

    • Marcado como respuesta EliannyRD lunes, 30 de octubre de 2017 17:08
    lunes, 30 de octubre de 2017 17:02

Todas las respuestas

  • A mi entender no está bien así como lo tienes, solo cargas el texto del display al combo, lo que puedes hacer es agregar items al combo a medida que  DL lee .. Combobox.Items.Add(LD......), También puedes generar un OleDbDataAdapter y por medio de .Fill(tabla) cargar una DataTable y luego el combobox  mediante ej:

    Combobox.DataSource = tabla

    ComboBox.DisplayMember = "CampoNombre"

    ComboBox.ValueMember = "CampoID"

    domingo, 29 de octubre de 2017 20:22
  • Gracias, pero no funciona tu código. 

    La idea es que, si en registro cliente hay 5 clientes, por ejemplo, el combo debería desplegar los nombres de las personas.

    ComboBox1

    RAMON

    MARIA

    JOSE

    CARLOS

    MARIA.

    ME Podrías poner un código de ejemplo. 

    lunes, 30 de octubre de 2017 0:24
  • digamos que en la tabla tienes varios campos uno de ellos "Apellido" otro podría ser "Nombre" entonces partiendo de lo que ya tienes echo sería algo así ej:

       Dim Tabla as DataTable

       Dim Adaptador As  New System.Data.OleDb.OleDbDataAdapter(consultaSQL,Conexion)

       Adaptador.Fill(Tabla)
       ComboBox1.DataSource = Tabla
       ComboBox1.DisplayMember = "Apellido"

    Si quieres agreagr un valor adicional puedes utilizar ComboBox1.ValueMember = "OtroCampo" ej: Nombre

    lunes, 30 de octubre de 2017 2:06
  • me codó asi: pero no funciona todavia. 

    Using cn As New OleDbConnection(cadenaConexion)
                cn.Open()
                Using cmd As New OleDbCommand("Select Nombre_cliente From Tbla_cliente", cn)
                    Using da As New OleDbDataAdapter(cmd)
                        Dim dt As New DataTable("Nombre_cliente")
                        da.Fill(dt)
                        ComboBox1.DisplayMember = "Nombre_cliente"
    
                    End Using
                End Using
            End Using

    lunes, 30 de octubre de 2017 15:45
  • Ya funciona: 

    Using cn As New OleDbConnection(cadenaConexion)
                cn.Open()
                Using cmd As New OleDbCommand("Select Nombre_cliente From Tbla_cliente", cn)
                    Using da As New OleDbDataAdapter(cmd)
                        Dim dt As New DataTable("Nombre_cliente")
                        da.Fill(dt)
                        ComboBox1.DataSource = dt
                    End Using
                End Using
            End Using

    y como le hago para siempre salga de primero  en el Combo esta opción: SELECCIONE


    • Marcado como respuesta EliannyRD lunes, 30 de octubre de 2017 17:02
    lunes, 30 de octubre de 2017 15:59
  • Using cn As New OleDbConnection(cadenaConexion) cn.Open() Using cmd As New OleDbCommand("select [Seleccione] as Nombre_cliente union all (Select Nombre_cliente From Tbla_cliente )", cn) Using da As New OleDbDataAdapter(cmd) Dim dt As New DataTable("Nombre_cliente") da.Fill(dt) ComboBox1.DataSource = dt End Using End Using End Using


    Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!


    • Editado D A N E lunes, 30 de octubre de 2017 16:21
    • Marcado como respuesta EliannyRD lunes, 30 de octubre de 2017 17:02
    lunes, 30 de octubre de 2017 16:20
  • el código me quedó así: 

    Resuelto: 

     Using cn As New OleDbConnection(cadenaConexion)
                cn.Open()
                Using cmd As New OleDbCommand("Select Nombre_cliente From Tbla_cliente", cn)
                    Using da As New OleDbDataAdapter(cmd)
                        Dim dt As New DataTable("Nombre_cliente")
                        da.Fill(dt)
                        Dim dr As DataRow = dt.NewRow()
                        dr(0) = "SELECCIONE"
                        dt.Rows.InsertAt(dr, 0)
                        ComboBox1.DisplayMember = "Nombre_cliente"
                        ComboBox1.DataSource = dt
                    End Using
                End Using
            End Using

    • Marcado como respuesta EliannyRD lunes, 30 de octubre de 2017 17:08
    lunes, 30 de octubre de 2017 17:02