elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:28  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Ayuda con ComboBox
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con ComboBox  (Leído 2,602 veces)
[D4N93R]
Moderador
***
Desconectado Desconectado

Mensajes: 1.647


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Ayuda con ComboBox
« Respuesta #15 en: 9 Marzo 2011, 20:50 »

Luego de que le pasas el DataSource, dale DataBind, y luego agregas los Items. Si te falla create una clase POCO para esa entidad y las metes en una lista, la cual lleva como primer item uno que dice "Seleccione"

Esa lista la metes en el data source. y Listo funciona.

Un saludo!


En línea

proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Ayuda con ComboBox
« Respuesta #16 en: 9 Marzo 2011, 21:24 »

muchas gracias a todos, y disculpen por ser tan cabeza dura pero es que soy nuevo en esto de vb.net es mas esto es casi lo primero que hago, me podrían poner un ejemplo de como hacerlo, si no es mucha la molestia.
desde ya muchas gracias.


En línea
seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Ayuda con ComboBox
« Respuesta #17 en: 10 Marzo 2011, 06:15 »

confieso que yo nunca he usado las propiedades .DataSource y .DisplayMember de los combo para trabajar con ellos, lo hago a la "vieja escuela".

simplemente hago una consulta y que me devuelva un datareader, ese datareader lo recorro y voy llenando el combo con "items.add" y listo...si quiero cambio valores al vuelo por asi decirlo, o sea tengo mas control sobre los datos que me vienen y si quero hacer concatenaciones o alguna logica en el codigo, o si queres agregar mas items todavia a los que te vienen podes hacerlo, con este metodo me lo permite, es como llenar un listview digamos.

aca te paso un ejemplo, si queres usalo.

Código
    Private Sub CargarCombo()
 
       Dim drDatos As SqlDataReader = oUsuarios.TraerUsuarios ' aca dentro hago la consulta que devuelve el datareader con los registros
 
       cmbUsuarios.Items.Clear()
 
       While drDatos.Read() ' aca recorro los registros y voy llenando el combo, si queres aca podes concatenar campos, o hacer lo que quieras.
           cmbUsuarios.Items.Add(New Combo_itemData(drDatos("nombre"), drDatos("id")))
       End While
 
       drDatos.Close()
       drDatos = Nothing
   End Sub

esa clase "New Combo_itemData" es una clase que imita la propiedad ItemData del visual basic 6, si no lo sabes te explico que la propiedad ItemData era para almacenar un "id" para identificar el item al seleccionarlo, como en vb net no esta mas esta propiedad, hay que hacer una clase aparte que lo imita, aca te explica bien el guille como hacerla.

ItemData en .NET

si vos queres agregar un item por defecto al combo por ejemplo "SELECCIONE..."
, es facil, en el codigo anterior, despues de usar el Clear() para limpiar el combo, debes agregar un Item. lo tenes que hacer antes de entrar al bucle del While, entonces por mas que el datareader no tenga datos, el item "SELECCIONE..." siempre va a estar.

te quedaria asi:

Código
Private Sub CargarCombo()
 
       Dim drDatos As SqlDataReader = oUsuarios.TraerUsuarios ' aca dentro hago la consulta que devuelve el datareader con los registros
 
       cmbUsuarios.Items.Clear()
 
       cmbUsuarios.Items.Add(New Combo_itemData("SELECCIONE...", "...")) ' item por defecto
 
       While drDatos.Read() ' aca recorro los registros y voy llenando el combo, si queres aca podes concatenar campos, o hacer lo que quieras.
           cmbUsuarios.Items.Add(New Combo_itemData(drDatos("nombre"), drDatos("id")))
       End While
 
       drDatos.Close()
       drDatos = Nothing
   End Sub

el item "SELECCIONE..." siempre va a estar en la posicion indice 0 del combo, por lo tanto es facil validarlo despues al momento de saber cual item seleccionaste.

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Ayuda con ComboBox
« Respuesta #18 en: 10 Marzo 2011, 13:26 »

seba123neo gracias por tu ayuda,hice lo que me dijiste y me quedo de esta manera el código:
Código
   consulta = String.Format("select MED_MARCA from cmb_medidores ")
       Dim Sqlstr As New SQLiteCommand(consulta, cnnloc2)
       Dim drDatos As SQLiteDataReader = Sqlstr.ExecuteReader(CommandBehavior.CloseConnection) ' aca dentro hago la consulta que devuelve el datareader con los registros
       ComboBox1.Items.Clear()
       ComboBox1.Items.Add(New Combo_itemData("SELECCIONE...", "...")) ' item por defecto
       While drDatos.Read() ' aca recorro los registros y voy llenando el combo, si queres aca podes concatenar campos, o hacer lo que quieras.
           ComboBox1.Items.Add(New Combo_itemData(drDatos("MED_MARCA"), drDatos("id")))
       End While
 
       drDatos.Close()
       drDatos = Nothing

pero me da error en la siguiente linea:

ComboBox1.Items.Add(New Combo_itemData(drDatos("MED_MARCA"), drDatos("id")))
 me dice algo como "IndexOutOfRangeException"

"MED_MARCA" es el campo de mi base de datos que quiero mostrar en el combobox


En línea
seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Ayuda con ComboBox
« Respuesta #19 en: 11 Marzo 2011, 00:09 »

eso es un error de campo, el campo "id" existe ?

Citar
ComboBox1.Items.Add(New Combo_itemData(drDatos("MED_MARCA"), drDatos("id")))

ese lo habia puesto yo de ejemplo, vos cambialo por el campo que identifique al registro.

saludos.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con un combobox
Java
kurama12 1 1,001 Último mensaje 25 Mayo 2007, 18:00
por Casidiablo
Ayuda con combobox en php
PHP
Dannysoft 2 1,333 Último mensaje 12 Julio 2008, 23:47
por Hans el Topo
AYUDA CON COMBOBOX
Programación Visual Basic
hannah 1 400 Último mensaje 17 Octubre 2008, 20:57
por cobein
ayuda con un combobox
Programación Visual Basic
guidosl 1 418 Último mensaje 5 Abril 2009, 00:14
por xkiz ™
[Ayuda] ComboBox en VB6 [Solucionado]
Programación Visual Basic
DeSsy 7 1,608 Último mensaje 11 Febrero 2011, 17:49
por DeSsy
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines