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 Navigating a Relationship between Tables.
[!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