Procedura: creare elenchi Master-Details con il controllo DataGrid Windows Form
Nota
Benché il controllo DataGridView sostituisca il controllo DataGrid aggiungendovi funzionalità, il controllo DataGrid viene mantenuto per compatibilità con le versioni precedenti e per un eventuale utilizzo futuro. Per ulteriori informazioni, vedere Differenze tra i controlli DataGridView e DataGrid di Windows Form.
Se DataSet contiene una serie di tabelle correlate, è possibile utilizzare due controlli DataGrid per visualizzare i dati in un formato Master-Details. Il primo DataGrid viene designato come griglia principale e il secondo come griglia dei dettagli. Quando si seleziona una voce nell'elenco principale, nell'elenco dei dettagli vengono visualizzate tutte le relative voci figlio. Se ad esempio DataSet contiene una tabella Customers e una tabella correlata Orders, è possibile specificare la tabella Customers come griglia principale e la tabella Orders come griglia dei dettagli. Quando si seleziona un cliente nella griglia principale, tutti gli ordini associati a quel cliente inclusi nella tabella Orders verranno visualizzati nella griglia dei dettagli.
Per impostare una relazione Master-Details a livello di codice
Creare due nuovi controlli DataGrid e impostarne le proprietà.
Aggiungere delle tabelle al dataset.
Dichiarare una variabile di tipo DataRelation per rappresentare la relazione che si desidera creare.
Creare un'istanza della relazione (DataRelation) specificando un nome per la relazione nonché la tabella, la colonna e l'elemento che collegheranno le due tabelle.
Aggiungere la relazione all'insieme Relations dell'oggetto DataSet.
Utilizzare il metodo SetDataBinding del controllo DataGrid per associare entrambe le griglie all'oggetto DataSet.
Nell'esempio riportato di seguito viene illustrato come impostare una relazione Master-Details tra la tabella Customers e la tabella Orders in un oggetto DataSet (ds) precedentemente generato.
Dim myDataRelation As DataRelation myDataRelation = New DataRelation _ ("CustOrd", ds.Tables("Customers").Columns("CustomerID"), _ ds.Tables("Orders").Columns("CustomerID")) ' Add the relation to the DataSet. ds.Relations.Add(myDataRelation) GridOrders.SetDataBinding(ds, "Customers") GridDetails.SetDataBinding(ds, "Customers.CustOrd")
DataRelation myDataRelation; myDataRelation = new DataRelation("CustOrd", ds.Tables["Customers"].Columns["CustomerID"], ds.Tables["Orders"].Columns["CustomerID"]); // Add the relation to the DataSet. ds.Relations.Add(myDataRelation); GridOrders.SetDataBinding(ds,"Customers"); GridDetails.SetDataBinding(ds,"Customers.CustOrd");
DataRelation^ myDataRelation; myDataRelation = gcnew DataRelation("CustOrd", ds->Tables["Customers"]->Columns["CustomerID"], ds->Tables["Orders"]->Columns["CustomerID"]); // Add the relation to the DataSet. ds->Relations->Add(myDataRelation); GridOrders->SetDataBinding(ds, "Customers"); GridDetails->SetDataBinding(ds, "Customers.CustOrd");
Vedere anche
Attività
Procedura: associare il controllo DataGrid Windows Form a un'origine dati
Riferimenti
Cenni preliminari sul controllo DataGrid (Windows Form)