Como: Acesso 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 Navegando no relacionamento entre tabelas.

Observaçã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 Exibindo dados em formulários em aplicativos do Windows, especificamente Como: Exibir dados relacionados em um aplicativos do Windows e Demonstra Passo a passo: Exibindo dados relacionados em um formulário em um aplicativos do Windows.

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

Outros recursos

Relacionamentos em DataSets

Guia de Introdução para acesso a dados

Conectando-se a Dados no Visual Studio

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Exibindo dados em formulários em aplicativos do Windows

Editar dados no seu aplicativo

Validando Dados

Salvando dados