Foros del Web » Programación para mayores de 30 ;) » .NET »

rellenar un ComboBox

Estas en el tema de rellenar un ComboBox en el foro de .NET en Foros del Web. Hola a tod@s. Os comento una duda que consiste en que no se como rellenar un comboBox a trasvés de una base de datos, estoy ...
  #1 (permalink)  
Antiguo 12/03/2009, 12:32
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
rellenar un ComboBox

Hola a tod@s. Os comento una duda que consiste en que no se como rellenar un comboBox a trasvés de una base de datos, estoy intentándolo con el siguiente código pero no me funciona. Muchas gracias.

Código PHP:
Public Class Form1
    Dim cadena 
As String "Data Source=IVAN-PC;Initial Catalog=MiBaseDatos;Integrated Security=True"
    
Dim con As SqlConnection
    Dim sqltext 
As String "Select Nombre from Table1"
    
Dim DTT As DataTable
    Sub abrir
()
        If 
IsNothing(conThen
            con 
= New SqlConnection(cadena)
            Try
                
con.Open()
            Catch 
ex As Exception
                MessageBox
.Show(ex.Message)
            
End Try
        
End If
    
End Sub
    


    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        abrir
()
        
CBPrueba.DisplayMember "Nombre"
        
CBPrueba.ValueMember "ID"
        
CBPrueba.DataSource DTT
    End Sub
End 
Class 
  #2 (permalink)  
Antiguo 13/03/2009, 07:06
Avatar de sagma  
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: rellenar un ComboBox

que tal, espero que te sirva:

Código PHP:

Function Cargar_ComboBox()
        
Dim Trx As New accesodatos.Transacciones(False)
        
Dim DtLEmi As DataTable
        Dim Ad 
As New accesodatos.Operaciones(Trx.Comand)

        
DtLEmi Ad.EjecturarConsulta("SELECT luemcodi, luemdesc FROM lugar_emision")
        
Me.cbx_LugarEmision.DataSource DtLEmi
        Me
.cbx_LugarEmision.DisplayMember "luemdesc"
        
Me.cbx_LugarEmision.ValueMember "luemcodi"

        
Trx.CerrarConexion()
    
End Function 
__________________
Sagma -- :arriba:
  #3 (permalink)  
Antiguo 14/03/2009, 14:44
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: rellenar un ComboBox

El error está en q los campos q le asignas a las propiedades DisplayMember y ValueMember del ComboBox deben estar contenidos en el DataSource.
Cuando tu ejecutas "SELECT nombre FROM Table1" solo te trae la columna nombre pero ID no lo reconoce pq no está en tu FUENTE DE DATOS.
Creo q tmb es buena idea el hecho de q asignes primero el DataSource, y luego asignes los valores a esas propiedades.

Otra cosa, creo q el método abrir() q declaras, solo te ejecuta la conexión a la BD, pero donde asignas el resultado de esa consulta al DataTable q declaras?
Imagino q tmb está faltando eso.

Saludos y espero q te sirva la explicación...
  #4 (permalink)  
Antiguo 16/03/2009, 10:41
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: rellenar un ComboBox

Ante todo muchas gracias por vuestra ayuda. He realizado una serie de modificaciones en el código pero sigue dándome errores. El error que me da en esta ocasión es el siguiente.
Cita:
Resaltando Me.CBPrueba.ValueMember = "ID"
No se puede enlazar con el nuevo miembro de presentación.
Nombre del parámetro: newDisplayMember
Y el código con las modificaciones es el siguiente:
Código PHP:
Public Class Form1
    Dim cadena 
As String "Data Source=LION-PC;Initial Catalog=MiBaseDatos;Integrated Security=True"
    
Dim con As SqlConnection
    Dim sqltext 
As String
    Dim DTT 
As DataTable
    Sub abrir
()
        If 
IsNothing(conThen
            con 
= New SqlConnection(cadena)
            Try
                
con.Open()
            Catch 
ex As Exception
                MessageBox
.Show(ex.Message)
            
End Try
        
End If
    
End Sub
    Sub Cargar_ComboBox
()
        
abrir()
        
DTT = New DataTable
        sqltext 
"Select ID, Nombre from Table1"
        
Me.CBPrueba.DataSource DTT
        Me
.CBPrueba.DisplayMember "Nombre"
        
Me.CBPrueba.ValueMember "ID"
    
End Sub

    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

        Cargar_ComboBox
()
       
    
End Sub
End 
Class 
  #5 (permalink)  
Antiguo 16/03/2009, 12:30
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: rellenar un ComboBox

Vamos de nuevo a explicarlo...
Creas la conexión, pero nunca le dices q llene (Fill) ese DataTable q asignas como DataSource.

Código:
             
// Create SqlConnection, SqlDataAdapter, Datatable
SqlConnection connection = new SqlConnection"Data Source=LION-PC;Initial Catalog=MiBaseDatos;Integrated Security=True");
SqlDataAdapter adapter = new SqlDataAdapter("Select ID, Nombre from Table1", connection);
DataTable table = new DataTable();

// Open Connection, fill DataTable, Close Connection.
connection.Open();
adapter.Fill(table);
connection.Close();
Espero te quede más claro ;)
Solo te toca adaptar estas instrucciones a tu código actual pq están en C#, y veo q tú usas Visual Basic, pero en esencia es lo mismo.

Ojalá te sirva, y por aqui seguimos
  #6 (permalink)  
Antiguo 17/03/2009, 10:36
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: rellenar un ComboBox

Muchas gracias jlbautista me ha sido de mucha utilidad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:34.