共用方式為


HOW TO:使用 Windows Form DataGrid 控制項建立主從式清單

注意事項注意事項

DataGridView 控制項會取代 DataGrid 控制項並加入其他功能,不過您也可以選擇保留 DataGrid 控制項,以提供回溯相容性及未來使用。 如需詳細資訊,請參閱 Windows Form DataGridView 和 DataGrid 控制項之間的差異

如果您的 DataSet 包含一系列關聯的資料表,您可以使用兩個 DataGrid 控制項,以主從式的格式顯示資料。 一個 DataGrid 指定為主版資料格,第二個則指定為詳細資料資料格。 當您在主要清單中選取項目時,相關的所有子項目都將顯示在詳細資料清單中。 例如,如果 DataSet 包含 Customers 資料表和關聯的 Orders 資料表,則您會將 Customers 資料表指定為主版資料格,並將 Orders 資料表指定為詳細資料資料格。 在主要資料格中選取客戶時,Orders 資料表中與該客戶相關的所有訂單都會顯示於詳細資料資料格中。

若要以程式設計方式設定主從式關聯性

  1. 建立兩個新的 DataGrid 控制項並設定它們的屬性。

  2. 將資料表加入至資料集。

  3. 宣告 DataRelation 型別的變數,代表要建立的關聯。

  4. 以指定關聯性名稱以及指定資料表、資料行和繫結兩個資料表的項目來產生關聯性。

  5. 將關聯性加入至 DataSet 物件的 Relations 集合。

  6. 使用 DataGridSetDataBinding 方法,將每個資料格繫結至 DataSet

    下列範例會示範如何在先前產生的 DataSet (ds) 中,設定 Customers 和 Orders 資料表之間的主從式關聯性。

    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");
    

請參閱

工作

HOW TO:將 Windows Form DataGrid 控制項繫結至資料來源

參考

DataGrid 控制項概觀 (Windows Form)

其他資源

DataGrid 控制項 (Windows Form)