Cómo: Obtener acceso a registros en tablas de datos relacionadas
Cuando las tablas de un conjunto de datos están relacionadas, un objeto DataRelation puede hacer que los registros relacionados estén disponibles en otra tabla. Por ejemplo, se puede hacer que esté disponible un conjunto de datos que contenga las tablas Customers y Orders.
Puede utilizar un objeto DataRelation para localizar registros relacionados llamando al método GetChildRows de una DataRow de la tabla principal; este método devuelve una matriz de registros secundarios relacionados. O bien, puede llamar al método GetParentRow de un DataRow de la tabla secundaria; este método devuelve un único DataRow de la tabla primaria.
En esta página de Ayuda se proporcionan ejemplos que utilizan conjuntos de datos con tipo. Para obtener información sobre cómo navegar por las relaciones en los conjuntos de datos sin tipo, vea Navegar por DataRelations (ADO.NET).
Nota
Si está trabajando en una aplicación de Windows Forms y utiliza las características de enlace a datos para mostrar los datos, es posible que el formulario que genera el diseñador proporcione suficiente funcionalidad para la aplicación. Para obtener más información, vea las páginas de Enlazar controles a los datos en Visual Studio, concretamente Cómo: Mostrar datos relacionados en una aplicación de Windows Forms y Tutorial: Mostrar datos relacionados en un formulario Windows Forms.
Los ejemplos de código siguientes muestran cómo navegar por las relaciones de conjuntos de datos con tipo. Utilizan DataRows con tipo (NorthwindDataSet.OrdersRow) y los métodos generados FindByPrimaryKey (FindByCustomerID) para buscar una fila deseada y devolver los registros relacionados. Los ejemplos se compilan y se ejecutan correctamente sólo si tiene:
Una instancia de un conjunto de datos denominada NorthwindDataSet con una tabla Customers
Una tabla Orders
Una relación denominada FK_Orders_Customers que relaciona las dos tablas disponibles para el ámbito de su código
Además, ambas tablas necesitan rellenarse con datos para poder devolver registros.
Acceso a registros relacionados
Para devolver los registros secundarios de un registro primario seleccionado
Llame al método GetChildRows de una fila de datos Customers concreta y devuelva una matriz de filas desde la tabla Orders:
Dim customerID As String = "ALFKI" Dim orders() As NorthwindDataSet.OrdersRow orders = CType(NorthwindDataSet.Customers.FindByCustomerID(customerID). GetChildRows("FK_Orders_Customers"), NorthwindDataSet.OrdersRow()) MessageBox.Show(orders.Length.ToString())
string custID = "ALFKI"; NorthwindDataSet.OrdersRow[] orders; orders = (NorthwindDataSet.OrdersRow[])northwindDataSet.Customers. FindByCustomerID(custID).GetChildRows("FK_Orders_Customers"); MessageBox.Show(orders.Length.ToString());
Para devolver el registro primario de un registro secundario seleccionado
Llame al método GetParentRow de una fila de datos Orders concreta y devuelva una única fila de la tabla Customers:
Dim orderID As Integer = 10707 Dim customer As NorthwindDataSet.CustomersRow customer = CType(NorthwindDataSet.Orders.FindByOrderID(orderID). GetParentRow("FK_Orders_Customers"), NorthwindDataSet.CustomersRow) MessageBox.Show(customer.CompanyName)
int orderID = 10707; NorthwindDataSet.CustomersRow customer; customer = (NorthwindDataSet.CustomersRow)northwindDataSet.Orders. FindByOrderID(orderID).GetParentRow("FK_Orders_Customers"); MessageBox.Show(customer.CompanyName);
Vea también
Conceptos
Enlazar controles a los datos en Visual Studio
Otros recursos
Relaciones en conjuntos de datos
Información general de las aplicaciones de datos en Visual Studio
Conectarse a datos en Visual Studio
Preparar la aplicación para recibir datos