Como: Access Records in Related DataTables

Quando tabelas em um dataset estão relacionadas, um objeto DataRelation pode tornar disponíveis os registros relacionados em outra tabela.Por exemplo, um DataSet que contém tabelas Customers e Orders pode ser disponibilizado.

Você pode usar um objeto DataRelation para localizar registros relacionados chamando o método GetChildRows de uma DataRow na tabela pai; este método retorna uma matriz de registros filho relacionados.Ou você pode chamar o método GetParentRow de uma DataRow na tabela filho; esse método retorna uma única DataRow da tabela pai.

Esta página da Ajuda fornece exemplos usando DataSets tipados.Para obter informações sobre navegar em relações em datasets não tipados, consulte Navigating a Relationship between Tables.

ObservaçãoObservação

Se você estiver trabalhando em um aplicativo de Formulários do Windows e usando os recursos de vinculação de dados para exibir dados, o formulário gerado pelo designer pode fornecer funcionalidade suficiente a seu aplicativo.Para obter mais informações, consulte as páginas em Controles de vinculação de dados de Visual Studio, especificamente Como: exibir dados relacionados em um aplicativo do Windows Forms e Passo a passo: Exibindo dados relacionados em um Windows Form.

Os exemplos de código a seguir demonstram navegação em relacionamentos para cima e para baixo em DataSets tipados.Eles usam DataRows tipadas (NorthwindDataSet.OrdersRow) e os métodos gerados FindByPrimaryKey (FindByCustomerID) para localizar uma linha desejada e retornar os registros relacionados.Os exemplos compilam e executam corretamente somente se você tem:

  • Uma instância de um conjunto de dados chamado NorthwindDataSet com uma tabela Customers

  • Uma tabela Orders

  • Um relacionamento chamado FK_Orders_Customers relacionando as duas tabelas disponíveis ao escopo do seu código

Além disso, ambas as tabelas precisam ser preenchidas com dados para quaisquer registros a serem retornados.

Acessando registros relacionados

Para retornar os registros filho de um registro pai selecionado

  • Chame o método GetChildRows de uma linha de dados Customers específica e retorne uma matriz de linhas da tabela 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 retornar o registro pai de um registro filho selecionado

  • Chame o método GetParentRow de uma linha de dados Orders específica e retorne uma única linha da tabela 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); 
    

Consulte também

Conceitos

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo.

Controles de vinculação de dados de Visual Studio

Edição de dados em seu aplicativo.

Validação de dados

Salvar dados

Outros recursos

Relacionamentos em Datasets

Visão geral dos aplicativos de dados em Visual Studio

Connecting to Data in Visual Studio