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

[SOLUCIONADO] Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Estas en el tema de Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV en el foro de .NET en Foros del Web. Buenas tardes a todos. La consulta es, ¿Cómo recorro ítem a ítem el contenido de un combobox y que estos pasen a ser los nombres ...
  #1 (permalink)  
Antiguo 14/05/2015, 13:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Buenas tardes a todos. La consulta es, ¿Cómo recorro ítem a ítem el contenido de un combobox y que estos pasen a ser los nombres de columnas de un DatagridView?
El contenido del Combobox va a ser siempre variable en cantidad de ítems y en sus textos dado que el mismo se llena con los nombres de campos de tablas a elección.
Lo estoy haciendo en Visual Basic 2010.
La idea es que no quiero el DGV enlazado a datos...
Solo quiero que el DGV me aparezca con los nombres de columnas.

Con esto LLeno el Combobox.

Dim Valor As Object = Me.cmbTablas.Text
If (TypeOf Valor Is DataRowView) Then Return
Cadena2 = Convert.ToString(Valor)
Sentencia = Nothing
Sentencia = "SELECT Column_Name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME= '" + Cadena2 + "'"
Conexion = New SqlConnection(Cs)
Conexion.Open()
Ds = New DataSet
Da = New SqlDataAdapter(Sentencia, Conexion)
Da.Fill(Ds, "Column_Name")
Me.cmbCamposTablas.DataSource = Ds.Tables(0)
Me.cmbCamposTablas.DisplayMember = ("Column_Name")
  #2 (permalink)  
Antiguo 14/05/2015, 16:40
Avatar de Namiwis  
Fecha de Ingreso: mayo-2013
Ubicación: Crustaceo Cascarudo
Mensajes: 162
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Hola CEB_ROJO

Lo recorres asi

Código:
For i As Integer = 0 To ComboBox1.Items.Count - 1

'Al momento que lo recorres tienes que agregar la funcion para que se llene tu DataGridView

'Tienes que definir que tipo de Columna vas a agregar, TextBox, Botton, etc
Dim Obj As New DataGridViewColumn
Dim Col As New DataGridViewTextBoxColumn

'Le asignas el nombre de los items de tu combobox
Obj = Col
Obj.HeaderText = ComboBox1.Items(i) ' el texto que ira en la cabecera
Obj.Name = ComboBox1.Items(i) ' el nombre de la columna para el DataDridView

'Agregar la columna al DataGridView
DataGridView1.Columns.Add(Obj)

Next

Espero te sirva.

Saludos :porra:
__________________
http://binarysuns.com.mx/
  #3 (permalink)  
Antiguo 15/05/2015, 09:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Muchísimas gracias por tu pronta respuesta Namiwis.
Lo pruebo y vemos que resulta.
  #4 (permalink)  
Antiguo 15/05/2015, 10:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Bueno Namiwis, lo probé pero me da el siguiente error:
La conversión del tipo DATAROWVIEW en tipo String, no es válida...
Que puedo estar haciendo mal?
  #5 (permalink)  
Antiguo 15/05/2015, 10:19
Avatar de Namiwis  
Fecha de Ingreso: mayo-2013
Ubicación: Crustaceo Cascarudo
Mensajes: 162
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Hola CEB_ROJO

Y de donde jalas ese DataRowView? aqui no toca en la orquesta, se supone que tu llenaras el DataGridView de un ComboBox, que llenaste previamente, y con los datos de ese ComboBox llenas el DataGridView

Revisa bien la logica de tu codigo, guiandote del ejemplo que te coloque arriba.

Saludos.
__________________
http://binarysuns.com.mx/
  #6 (permalink)  
Antiguo 15/05/2015, 11:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Hola Namiwis, disculpá lo pesado pero acá te copio el código completo del botón que ejecuta la supuesta confección del DGV debiendo tomar como nombres de columnas c/u de los Text (Ítems) del Combo. Esta primer parte de código ya te la hube pasado anteriormente, pero te la vuelvo a pasar para que lo veas completo. El cmbTablas.text que ves ahí, es un combobox que se carga con una serie de Nombres de Tablas, Creadas por el usuario en Tiempo de Ejecución. Al seleccionar cualquiera de esas tablas en dicho combo y dar Click en el botón se ejecuta el código que te describo mas abajo, lleno el Combo
Try
Dim Valor As Object = Me.cmbTablas.Text
If (TypeOf Valor Is DataRowView) Then Return
Cadena2 = Convert.ToString(Valor)
Sentencia = Nothing
Sentencia = "SELECT Column_Name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME= '" + Cadena2 + "'"
Conexion = New SqlConnection(Cs)
Conexion.Open()
Ds = New DataSet
Da = New SqlDataAdapter(Sentencia, Conexion)
Da.Fill(Ds, "Column_Name")
Me.cmbCamposTablas.DataSource = Ds.Tables(0)
Me.cmbCamposTablas.DisplayMember = ("Column_Name")

For i As Integer = 0 To cmbCamposTablas.Items.Count - 1
Dim Obj As New DataGridViewColumn
Dim Col As New DataGridViewTextBoxColumn
Obj = Col
Obj.HeaderText = cmbCamposTablas.Items(i)
Obj.Name = cmbCamposTablas.Items(i)
DataGridView1.Columns.Add(Obj)
Next

Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If (Conexion.State And ConnectionState.Open) <> 0 Then
Conexion.Close()
End If
End Try
  #7 (permalink)  
Antiguo 18/05/2015, 19:11
 
Fecha de Ingreso: marzo-2009
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
Respuesta: Recorrer Combobox y establecer sus Items como Nombre de Columnas en DGV

Bueno Namiwis, al final quedó solucionado este tema, no es exactamente como me lo hubiste pasado, pero de todos modos me sirvió de mucho, por supuesto tremendamente agradecido por tu colaboración. Aca dejo el fragmento de código para quien alguna vez lo necesite si le surgiese algo similar, o sea, corrige ese error que me presentaba. La conversión del tipo DATAROWVIEW en tipo String, no es válida...

DataGridView1.Columns.Clear()
For i As Integer = 0 To cmbCamposTablas.Items.Count - 1
Dim Columna As New DataGridViewTextBoxColumn
Dim columnName As String = CType(cmbCamposTablas.Items(i), DataRowView)("Column_Name").ToString()
Columna.HeaderText = columnName
Columna.Name = columnName
DataGridView1.Columns.Add(Columna)
Next

Etiquetas: columnas, combobox, datagridview, establecer, items, nombre, sql, visual
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 03:09.