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

Carga datagridview combobox con una otra tabla

Estas en el tema de Carga datagridview combobox con una otra tabla en el foro de .NET en Foros del Web. Buenos días, Antes de nada daros las gracias por las posibles soluciones/ayudas que puedan prestarme. Llevo un par de días con este tema y la ...
  #1 (permalink)  
Antiguo 03/02/2015, 05:42
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Carga datagridview combobox con una otra tabla

Buenos días,

Antes de nada daros las gracias por las posibles soluciones/ayudas que puedan prestarme. Llevo un par de días con este tema y la verdad que ni en google ni en foros he visto este problema.

Estoy trabajando en vb.net y tengo un datagridview que cargo con la tabla Ocompra (Ordenes de compra) en esta hay un campo que es id_accion, que lo que quisiera es que apareciese el nombre de la acción y no su valor, eso estaría en la tabla de Accion.

Para cargar el datagridview utilizo el siguiente codigo:

Código vb:
Ver original
  1. Ds.Clear()
  2.  
  3.         Dim sql1 As String = "select *  from ocompra where fecha = '" & dtfecha.Value & "'"
  4.         Da = New SqlDataAdapter(sql1, CnxBD)
  5.         Da.Fill(Ds, "ocompra")
  6.         Me.dgvcompra.DataSource = Ds.Tables("ocompra")

Y para cargar el combobox:

Código vb:
Ver original
  1. With cmd
  2.             .CommandType = CommandType.Text
  3.             .CommandText = "Select * From Accion"
  4.             .Connection = CnxBD
  5.         End With
  6.  
  7.         Da.SelectCommand = cmd
  8.         Dt = New DataTable
  9.         Da.Fill(Dt)
  10.         With col2
  11.             .DataSource = Dt
  12.             .DisplayMember = "Nombre"
  13.             .ValueMember = "id_accion"
  14.         End With

Hasta ahí bien, me carga las compras que ha habido ese día y me carga un combobox al final con todas las acciones, pero, ¿como le digo que la segunda columna del datagridview quiero que sea el combobox y con el valor cargado de la compra?

Seguiré dándole vueltas e intentar hacerlo de algun modo.

Gracias y un saludo.
  #2 (permalink)  
Antiguo 03/02/2015, 06:44
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: Carga datagridview combobox con una otra tabla

Te lo digo en palabras para ver si te oriento:

lo que tenes que hacer primero es crear columna por columna y no cargar la grilla con el datasource directamente.
Cita:
Me.dgvcompra.DataSource = Ds.Tables("ocompra")
ESTO NO VA SI QUERES HACERLO MANUALMENTE.

la segunda columna tiene que ser de tipo combobox.
despues tenes que hacer un foreach de columna por columna e ir llenando los datos. Una vez que llegas a la del combo, deberias filtrarlo segun la accion que deseas.
Espero haberte orientado un poco.
__________________
Alquileres en la costa
Se tu mismo
  #3 (permalink)  
Antiguo 03/02/2015, 10:02
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Carga datagridview combobox con una otra tabla

Buenas Lucasmoadr y gracias por tu rápida respuesta.

Desde que me lo pusistes he estado haciendo modificaciones en el código (borrar y empezar vaya) y ya consigo cargar los datos que quiero en las columnas que anteriormente he creado. Voy a seguir a ver si consigo ahora el combobox.

Gracias y un saludo.
  #4 (permalink)  
Antiguo 03/02/2015, 11:29
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Carga datagridview combobox con una otra tabla

Buenas a todos,

Ya lo conseguí, aunque creo que el código no esta muy depurado pero funciona.

Código vb:
Ver original
  1. Dim Dtc As DataTable
  2.         Dim ocompra As DataGridViewColumn = New DataGridViewTextBoxColumn()
  3.         Dim realizadas As DataGridViewColumn = New DataGridViewTextBoxColumn()
  4.         Dim id_producto As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn()
  5.         Dim num_acciones As DataGridViewColumn = New DataGridViewTextBoxColumn()
  6.         Dim p_compra As DataGridViewColumn = New DataGridViewTextBoxColumn()
  7.         Dim extracto As DataGridViewColumn = New DataGridViewTextBoxColumn()
  8.  
  9.         'Cargo el combobox los datos de las acciones, Nombre e id_accion
  10.        With cmd
  11.             .CommandType = CommandType.Text
  12.             .CommandText = "Select * From Accion"
  13.             .Connection = CnxBD
  14.         End With
  15.  
  16.         Da.SelectCommand = cmd
  17.         Dtc = New DataTable
  18.         Da.Fill(Dtc)
  19.         With id_producto
  20.             .DataSource = Dtc
  21.             .DisplayMember = "Nombre"
  22.             .ValueMember = "id_accion"
  23.         End With
  24.  
  25.         ' Cargo en el datatable los datos de las ordenes de compra
  26.        With cmd
  27.             .CommandType = CommandType.Text
  28.             .CommandText = "select *  from ocompra where fecha = '" & dtfecha.Value & "'"
  29.             .Connection = CnxBD
  30.         End With
  31.  
  32.         Da.SelectCommand = cmd
  33.         Dt = New DataTable
  34.         Da.Fill(Dt)
  35.  
  36.         Dim dt2 As New DataTable
  37.  
  38.         dt2.Columns.Add("id_ocompra")
  39.         dt2.Columns.Add("realizadas")
  40.         dt2.Columns.Add("id_producto")
  41.         dt2.Columns.Add("num_acciones")
  42.         dt2.Columns.Add("p_compra")
  43.         dt2.Columns.Add("extracto")
  44.  
  45.  
  46.         dgvventa.Columns.Add(ocompra)
  47.         dgvventa.Columns(0).HeaderText = "ocompra"
  48.         dgvventa.Columns.Add(realizadas)
  49.         dgvventa.Columns(1).HeaderText = "realizadas"
  50.         dgvventa.Columns.Add(id_producto)
  51.         dgvventa.Columns(2).HeaderText = "id_producto"
  52.         dgvventa.Columns.Add(num_acciones)
  53.         dgvventa.Columns(3).HeaderText = "num_acciones"
  54.         dgvventa.Columns.Add(p_compra)
  55.         dgvventa.Columns(4).HeaderText = "p_compra"
  56.         dgvventa.Columns.Add(extracto)
  57.         dgvventa.Columns(5).HeaderText = "extracto"
  58.  
  59.         For i = 0 To Dt.Rows.Count - 1
  60.             dgvventa.Rows.Add()
  61.             dgvventa(0, i).Value = Dt.Rows(i)("id_ocompra")
  62.             dgvventa(1, i).Value = Dt.Rows(i)("realizadas")
  63.             dgvventa(2, i).Value = Dt.Rows(i)("id_producto")
  64.             dgvventa(3, i).Value = Dt.Rows(i)("num_acciones")
  65.             dgvventa(4, i).Value = Dt.Rows(i)("p_compra")
  66.             dgvventa(5, i).Value = Dt.Rows(i)("extracto")
  67.         Next

Muchas gracias, si veis alguna posibilidad de mejora en el código u otra manera mejor de hacerlo díganmelo por favor.

Un saludo.

Etiquetas: combobox, datagridview, gridview, net, sql, tabla
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 01:40.