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

Buscar datos en la aplicación

Modificar datos en la aplicación

Validar datos

Guardar datos