Como: Criar listas de mestre/detalhes com o controle DataGrid do Windows Forms
Observação: |
---|
O DataGridView controle substitui e adiciona funcionalidade a DataGrid controle; no entanto, o DataGrid controle é mantida para compatibilidade com versões anteriores e para uso futuro, se você escolher. Para obter mais informações, consulte Diferenças entre Windows Forms DataGridView and DataGrid Controls. |
Se seu DataSet contém uma série de tabelas relacionadas, você pode usar dois DataGrid controles para exibir os dados em um formato de mestre/detalhes. One DataGrid é designado para ser a grade mestre, e o segundo é designado para ser a grade de detalhes. Quando você seleciona uma entrada na lista mestre, todas as entradas de filho relacionado são mostradas na lista de detalhes.Por exemplo, se seu DataSet contém uma tabela clientes e uma tabela relacionada Orders, você especificaria na tabela Customers para ser o mestre grade e a tabela Orders para ser a grade de detalhes. Quando um cliente é selecionado na grade principal, todos os pedidos associados a esse cliente na tabela Pedidos, seriam exibidos na grade de detalhes.
Para conjunto um Relação mestre/detail programaticamente
Crie dois novos DataGrid controles e defina suas propriedades.
Adicione tabelas ao dataset.
Declare uma variável do tipo DataRelation para representar o parceiro que você deseja criar.
Criar uma instância de relação especificando um nome para a relação e especificando a tabela, coluna e item irá vincular duas tabelas.
Use o SetDataBinding método para o DataGrid Para BIND cada uma das grades para o DataSet.
O exemplo a seguir mostra como conjunto um Relação mestre/detalhes entre as tabelas Customers e Orders em um gerado anteriormente DataSet (ds).
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");
Consulte também
Tarefas
Como: BIND o controle DataGrid do Windows Forms a uma fonte de dados
Referência
Visão geral do controle DataGrid (Windows Forms)