Compartilhar via


Como acessar registros em DataTables relacionados

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 em DataRelations.

Dica

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 Associando controles a dados no Visual Studio, especificamente Como exibir dados relacionados em um aplicativo dos Windows Forms e Instruções 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 o aplicativo para receber dados

Buscando dados no aplicativo

Associando controles a dados no Visual Studio

Editando dados no aplicativo

Validando dados

Salvando dados

Outros recursos

Relacionamentos em conjuntos de dados

Visão geral de aplicativos de dados no Visual Studio

Conectando a dados no Visual Studio