Nasıl yapılır: Windows Forms DataGrid Denetimi ile Ana/Ayrıntı Listeleri Oluşturma

Not

DataGridViewDenetim yerini alır ve denetime işlevsellik ekler DataGrid ; ancak, isterseniz DataGrid Denetim hem geri uyumluluk hem de gelecekteki kullanım için korunur. daha fazla bilgi için bkz. Windows Forms DataGridView ve DataGrid denetimleri arasındaki farklar.

DataSetBir dizi ilişkili tablo içeriyorsa, DataGrid verileri ana/ayrıntı biçiminde göstermek için iki denetim kullanabilirsiniz. Biri DataGrid ana kılavuz olarak, ikincisi ise ayrıntılar kılavuzu olacak şekilde belirlenir. Ana listede bir giriş seçtiğinizde, ilgili alt girdilerin hepsi Ayrıntılar listesinde gösterilir. Örneğin, DataSet bir müşteriler tablosu ve Ilgili Siparişler tablosu içeriyorsa, müşteriler tablosunu ana kılavuz ve Siparişler tablosu olarak ayrıntılar kılavuzu olacak şekilde belirtirsiniz. Ana kılavuzdan bir müşteri seçildiğinde, Siparişler tablosunda bu müşteriyle ilişkili tüm siparişler Ayrıntılar kılavuzunda görüntülenir.

Programlı olarak ana/ayrıntılı ilişki ayarlamak için

  1. İki yeni DataGrid denetim oluşturun ve özelliklerini ayarlayın.

  2. Veri kümesine tablo ekleyin.

  3. DataRelationOluşturmak istediğiniz ilişkiyi temsil etmek için türünde bir değişken bildirin.

  4. İlişki için bir ad belirterek ve iki tabloyu barındıracak tablo, sütun ve öğeyi belirterek ilişkiyi oluşturun.

  5. İlişkiyi DataSet nesnenin Relations koleksiyonuna ekleyin.

  6. SetDataBindingDataGrid Izgaraların her birini öğesine bağlamak için yöntemini kullanın DataSet .

    Aşağıdaki örnek, daha önce oluşturulan () müşteriler ve siparişler tabloları arasında bir ana/ayrıntı ilişkisinin nasıl ayarlanacağını gösterir DataSetds .

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

Ayrıca bkz.