Más respuestas… a la pregunta:
>> Hola el ejemplo Dos Tablas y sus relaciones en un DataGridView a traves de un ‘ComboBoxColumn’ estuvo muy bueno pero quería saber cómo hago si solamente quiero mostrar los 2 DataTables tipo maestro detalle en el DataGridView.
‘
‘ Simular tabla con los Id’s Maestros
‘
Dim Maestros As New DataTable(«Maestro»)
Maestros.Columns.Add(«Cliente»)
Maestros.Columns.Add(«Nombre»)
Maestros.Rows.Add(«001», «Jose Javier Garcia»)
Maestros.Rows.Add(«002», «Jhon Smith Carter»)
Maestros.Rows.Add(«003», «Pierre Bertran Janvier»)
Maestros.Rows.Add(«004», «Jose Di Souza»)
‘
‘ Simular tabla con los Detalles
‘
Dim Detalles As New DataTable(«Detalle»)
Detalles.Columns.Add(«Cliente»)
Detalles.Columns.Add(«Pedido»)
Detalles.Columns.Add(«Fecha»)
Detalles.Columns.Add(«Importe»)
Detalles.Rows.Add(«001», «F164533», «22/01/2006», «1,111.11»)
Detalles.Rows.Add(«001», «A163453», «22/02/2007», «2,123.23»)
Detalles.Rows.Add(«003», «ZP12343», «22/03/2008», «3,456.34»)
Detalles.Rows.Add(«004», «PDF2333», «22/05/2009», «4,452.22»)
Detalles.Rows.Add(«001», «CRF5453», «22/06/2009», «1,223.33»)
Detalles.Rows.Add(«002», «MFF6763», «22/07/2009», «1,234.32»)
Detalles.Rows.Add(«002», «VRF4683», «22/08/2009», «2,123.54»)
Detalles.Rows.Add(«004», «ZRF7933», «22/09/2009», «1,203.00»)
‘
‘ Construir el DS y establecer relaciones
‘
Dim MiDataSet As New DataSet
MiDataSet.Tables.Add(Detalles)
MiDataSet.Tables.Add(Maestros)
MiDataSet.Relations.Add(«Fk», _
MiDataSet.Tables(«Maestro»).Columns(«Cliente»), _
MiDataSet.Tables(«Detalle»).Columns(«Cliente»))
‘
‘ Contructores para los Bingdings
‘
Dim MaestroBindingSource As New BindingSource
Dim DetalleBindingSource As New BindingSource
‘
‘ Binding del «Maestro»
‘
MaestroBindingSource.DataMember = «Maestro»
MaestroBindingSource.DataSource = MiDataSet
‘
‘ Enlace del detalle entre la relacion «Fk» y el Maestro
‘
DetalleBindingSource.DataMember = «Fk»
DetalleBindingSource.DataSource = MaestroBindingSource
‘
‘Asignar los binding source Maestro y Detalle a su DGV
Me.DataGridView1.DataSource = MaestroBindingSource
Me.DataGridView2.DataSource = DetalleBindingSource
‘
Para probar este ejemplo solo es necesario crear una nueva solución “Windows Forms”, añadir dos DataGridView al Form1 y en el evento “Form Load” añadir el código adjunto. Puedes hacer lo mismo utilizando un ‘combo’ aunque he preferido dos DataGridView por simplicidad.
Espero os sea útil,
Pep Lluis,
una gran aporte, gracias por escribir estos tips que para muchos como yo son un gran avance en el desarrollo y a la vez nuevos conocimientos.
nuevamente gracias por vuestro aporte.
svildoso
Todo lo contrario 🙂
Gracias a vosotros, por permitirme compartir con vosotros mis pequeños conocimientos. Sin duda vuestros comentarios dan razon de ser a este blog.
Saludos,
Pep Lluis,
ES PERFECTO PERO ME GUSTARIA SABER COMO LE PUEDO HACER PARA PONER 3 DATAGRINDVIEW
LO QUE PASA TENGO QUE ENTREGAR UN POGRAMA PARA MI ESCUELA Y QUIERO SOBER COMO
ES ALGO SIMILAR COMO EL MAESTRO DETALLE PERO CON TRES DATAGRINVIEW ES JEPLO PARA UNA TIENDA
UN MAESTRO, UN DETALLE Y UN TERCERO ….
idcategoria QUE ES EL MAESTRO
dulces
lacteos
perfumes
idcategoria, articulo que es el detalle
lacteos jamon
lacteos queso
lacteos salchicha
idcategoria, articulo,medidas,precio eseltercer
lacteos jamon 1kg $10
lacteos jamon 5kg $45
me gustaria saber como le puedo hacer para tener algo asi …..
me gustaria poder contar con su ayuda
espero su respuesta
me gustaria recivir su respuesta en mi correo electronico http://www.dan.com.mx@hotmail.com
.
excelente aporte, al menos para los que no tenemos tiempo de andar leyendo toda la documentacion de cada clase de Frame .NET
gracias
Hola Pep esta bueno el aporte, tengo una pregunta, como se realizaria la busqueda en la base de datos y se asignaria en windows form maestro detalle?
Gracias
Aqui tienes un ejemplo :
http://msmvps.com/blogs/peplluis/archive/2010/08/30/actualizar-dos-tablas-vinculadas-en-una-vista-maestro-detalle.aspx
Saludos,
Pep Lluis,
hola b uenas tardes oye necesito llenar un DataGridView pero con un adodb en visual basic 2008
pd = «SELECT * FROM producto»
rs = cnn.Execute(pd)
lin = DataGridView1.RowCount
Do While Not rs.EOF
DataGridView1.Rows.Add(rs.Fields(«id»).Value, rs.Fields(«nombre»).Value)
lin = lin + 1
Loop
pero me llena con lo mismo siempre
Hola Leonardo,
Primeramente deberias utilizar la propiedad ‘DataSouce’ del DataGridView para enlazar los datos, y te llena con lo mismo porque aparentemente siempre realizas la misma query «Select * FROM producto»… faltaria un where con lo que necesitaas seleccionar.
Saludos,
Saludos, gracias por el aporte, una pregunta en mi caso quiero llenar un DGV desde el código. ahorita tengo un msgbox y en lugar de ese quiero agregarlos a un DGV, ejemplo
For n = 1 To m
P1 = a * Xo + c
Xn = P1 Mod m
Rn = Xn / m
MsgBox(n.ToString +» «+ Xn.ToString . . . .)
Next
que la DGV se valla llenando mientras corre el For.
Gracias por sus aportaciones son de mucha ayuda