Condividi tramite


Procedura: accedere ai record di DataTable correlate

Se le tabelle presenti in un dataset sono correlate, un oggetto DataRelation consente di rendere disponibili i record correlati di un'altra tabella. Può essere reso disponibile, ad esempio, un dataset che contiene le tabelle Customers e Orders.

È possibile utilizzare un oggetto DataRelation per individuare i record correlati effettuando una chiamata al metodo GetChildRows di un elemento DataRow della tabella padre; tale metodo restituisce una matrice di record figlio correlati. In alternativa, è possibile effettuare una chiamata al metodo GetParentRow di un elemento DataRow della tabella figlio; tale metodo restituisce un unico elemento DataRow della tabella padre.

In questa pagina della Guida vengono forniti esempi di utilizzo di dataset tipizzati. Per informazioni sull'esplorazione delle relazioni in dataset non tipizzati, vedere Navigazione in DataRelations.

Nota

Se si utilizza un'applicazione Windows Form e si visualizzano i dati mediante le funzionalità di associazione dati, il form generato mediante la finestra di progettazione può fornire funzionalità sufficiente per l'applicazione.Per ulteriori informazioni, vedere le pagine sull'argomento Associazione di controlli ai dati in Visual Studio, in particolare Procedura: visualizzare dati correlati in un'applicazione Windows Form e Procedura dettagliata: visualizzazione di dati correlati in un Windows Form.

Negli esempi di codice riportati di seguito viene illustrato lo spostamento verso l'alto e verso il basso nei dataset tipizzati. Vengono utilizzati oggetti DataRow tipizzati (NorthwindDataSet.OrdersRow) e i metodi generati FindByPrimaryKey (FindByCustomerID) per individuare una riga desiderata e restituire i record correlati. Gli esempi verranno compilati ed eseguiti correttamente soltanto se sono disponibili:

  • Un'istanza di dataset denominata NorthwindDataSet con una tabella Customers

  • Una tabella Orders

  • Una relazione denominata FK_Orders_Customers che collega le due tabelle disponibili all'ambito del codice

Inoltre, per la restituzione dei record, è necessario che entrambe le tabelle vengano riempite di dati.

Accesso a record correlati

Per restituire i record figlio di un record padre selezionato

  • Effettuare la chiamata al metodo GetChildRows di una riga di dati Customers specifica e verrà restituita una matrice di righe della tabella 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());
    

Per restituire il record padre di un record figlio selezionato

  • Effettuare la chiamata al metodo GetParentRow di una riga di dati Orders specifica e verrà restituita una singola riga della tabella 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); 
    

Vedere anche

Concetti

Preparazione dell'applicazione al ricevimento di dati

Recupero di dati nell'applicazione

Associazione di controlli ai dati in Visual Studio

Modifica di dati nell'applicazione

Convalida dei dati

Salvataggio di dati

Altre risorse

Relazioni nei dataset

Cenni preliminari sulle applicazioni dati in Visual Studio

Connessione ai dati in Visual Studio