Procedura: creare elenchi Master-Details con il controllo DataGrid Windows Form

Aggiornamento: novembre 2007

Nota:

Il controllo DataGridView sostituisce il controllo DataGrid disponibile nelle versioni precedenti. Quest'ultimo, tuttavia, è stato mantenuto per garantire la compatibilità con le versioni precedenti e può essere eventualmente utilizzato. 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

  1. Creare due nuovi controlli DataGrid e impostarne le proprietà.

  2. Aggiungere delle tabelle al dataset.

  3. Dichiarare una variabile di tipo DataRelation per rappresentare la relazione che si desidera creare.

  4. 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.

  5. Aggiungere la relazione all'insieme Relations dell'oggetto DataSet.

  6. 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)

Altre risorse

Controllo DataGrid (Windows Form)