Visual Basic.NET - combobox de dos campos

 
Vista:

combobox de dos campos

Publicado por david (116 intervenciones) el 20/05/2004 00:45:06
Hola!! Tengo un combobox al q a traves de una base de datos lo relleno con los registros de un campo "nombre" por ejemplo. Podria añadirle otro campo al combobox para q me mostrase los dos? y como se haria??
Este es el codigo que uso.
Dim comercial As SqlDataAdapter = New SqlDataAdapter("SELECT IdComercial,nombre FROM Comerciales", conn)
Dim DataSetComercial As DataSet = New DataSet
comercial.Fill(DataSetComercial, "Comerciales")
Dim Filas As DataRow
For Each Filas In DataSetComercial.Tables("Comerciales").Rows
CComercialCliente.Items.Add(Filas("nombre").ToString())
Next

Gracias y saludos!!!

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:combobox de dos campos

Publicado por Edgar (1501 intervenciones) el 20/05/2004 15:15:32
Hola

Lo que puedes hacer es concatenar las dos cadenas que quieres mostrar, es decir...

CComercialCliente.Items.Add(Filas("nombre").ToString() + Filas("direccion").ToString() )

Otra cosa que puedes hacer, tardarías más, pero es la mejor solución a mi parecer... es implementar el evento DrawItem, para esto, debes agregar antes la siguiente línea de código:

Me.ComboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable

De esta manera puedes pintar la lista desplegable de la forma que tu desees, por ejemplo, puedes agregar una linea de separación entre las distintas columnas

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox de dos campos

Publicado por david (116 intervenciones) el 20/05/2004 18:24:17
Hola!! Ya consegui poner los dos campos a la vez usando la concatenacion. Si tengo dos campos Identificador y nombre concatenados en un combobox de esta forma:
CProvMp.Items.Add(Filas("Identificador").ToString() + " " + Filas("nombre").ToString())
Como podria aislar en una variable integer al identificador solo??
Gracias por todo y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox de dos campos

Publicado por Edgar (1501 intervenciones) el 20/05/2004 20:57:10
Hola

Puedes obtener el item seleccionado y ejecutar el método Split, este te devuelve un arreglo de strings. Este método separa una cadena dividiendola ségún un conjunto de caracteres que actúan como separador, debes especificar como caracter separador el espacio.

Luego obtienes el primer elemento de ese arreglo, ya que es el que contiene el identificador, y lo transformas a entero

Ahora, el combobox tiene unas propiedades DataSource, DisplayMember y ValueMember que te resuelven el problema sin mayor complicación, pero no podrás mostrar las dos columnas, a menos que uses la segunda técnica que te mencioné anteriormente...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox de dos campos

Publicado por Arturo Diaz (1 intervención) el 03/07/2019 22:06:53
1
2
3
4
5
6
7
8
9
10
Dim ds As New DataSet()
 
ds.ReadXml("..\..\CatMun.xml")
 
Dim sql = From r In ds.Tables(0)
Select mun = r.Item(0), valor = r.Item(0) + " " + r.Item(1)
 
ComboBox1.DataSource = sql.ToList
ComboBox1.DisplayMember = "valor"
ComboBox1.ValueMember = "mun"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar