Forums Últimos mensajes - Powered by IBM
 

Consulta sobre DataGrid

05/04/2006 - 16:19 por Arturo | Informe spam
Hola amigos
He buscado en los manuales y no encuentro la forma de saber en que tabla
estoy parado cuando tengo un datagrid principal-detalle enlazado a dos
tablas relacionadas.
Ya hice esta consulta la semana pasada y hoy cuando la he buscado para ver
si he tenido respuesta no la encuentro, por eso la envío de nuevo al grupo
para ver si alguien me puede ayudar con el tema.
Desde ya muchas gracias.
 

Leer las respuestas

#1 Luis Miguel Blanco
06/04/2006 - 20:41 | Informe spam
Hola Arturo

Prueba a consultar la propiedad DataMember, ya que en el caso de un datagrid
que contiene un dataset con varias tablas, te mostrará la tabla de la que en
ese momento está visualizando datos, o el nombre de la relación en el caso de
que se trate de una visualización maestro-detalle.

Por ejemplo, en el siguiente bloque de código que te adjunto, se crea un
dataset que contiene dos tablas, y a continuación se establecer una relación
entre ambas, para finalmente asignar el dataset a un datagrid.

Mediante un botón en el formulario, cuando estemos visualizando la tabla
maestra, la propiedad DataGrid.DataMember devolverá "Customers", mientras que
si nos situamos en la tabla detalle obtendremos "Customers.Customers_Orders"

'//////////////////////////////////////
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim oConexion As New SqlConnection
oConexion.ConnectionString = "server=(local);" & _
"database=Northwind;uid=sa;pwd=;"

Dim daCustomers As New SqlDataAdapter("SELECT * FROM Customers",
oConexion)
Dim daOrders As New SqlDataAdapter("SELECT * FROM Orders", oConexion)

Dim oDataSet As DataSet
oDataSet = New DataSet

oConexion.Open()
daCustomers.Fill(oDataSet, "Customers")
daOrders.Fill(oDataSet, "Orders")
oConexion.Close()

oDataSet.Relations.Add("Customers_Orders", _
oDataSet.Tables("Customers").Columns("CustomerID"), _
oDataSet.Tables("Orders").Columns("CustomerID"))

Me.DataGrid1.DataSource = oDataSet
Me.DataGrid1.DataMember = "Customers"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim sTabla As String = Me.DataGrid1.DataMember
MessageBox.Show(sTabla)
End Sub
End Class
'//////////////////////////////////////

Espero que este ejemplo te sirva para resolver el problema.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Arturo" wrote:

Hola amigos
He buscado en los manuales y no encuentro la forma de saber en que tabla
estoy parado cuando tengo un datagrid principal-detalle enlazado a dos
tablas relacionadas.
Ya hice esta consulta la semana pasada y hoy cuando la he buscado para ver
si he tenido respuesta no la encuentro, por eso la envío de nuevo al grupo
para ver si alguien me puede ayudar con el tema.
Desde ya muchas gracias.



Preguntas similares