Criando uma aplicação Mestre-Detalhe

Vou mostrar neste artigo como criar uma aplicação Mestre-detalhe usando um DataSet. Vamos usar o banco de dados Teste  presente no SQL Server e as tabelas Clientes e Pedidos explorando o relacionamento entre as mesmas.

Nota: O banco de dados Teste que eu estou usando foi ajeitado para este exemplo . Na verdade eu criei o banco de dados e importei as tabelas do banco de dados Northwind.

A tabela Clientes contém a informação sobre os clientes e a tabela Pedidos contém a informação sobre os pedidos (óbvio...). Cada pedido tem um cliente relacionado. Abaixo mostramos a estrutura dessas duas tabelas :

Tabela Clientes Table Pedidos

Neste artigo a idéia e mostrar os clientes em um componente DataGrid e os pedidos relacionados em um outro componente DataGrid no mesmo formulário . Então , vamos ao trabalho...

1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

2- No formulário padrão insira dois componentes DataGrid e um botão de comando

3- Vamos agora configurar dois componentes DataAdapters : um para a tabela Clientes e outro para a tabela Pedidos. Vamos usar o Server Explorer para fazer este serviço. Ative o Server Explorer no menu View :

Abaixo temos as figuras exibindo o momento da inclusão da tabela no formulário e a conexão e os objetos SQLDataAdapter criados no projeto:

4. Vamos gerar um objeto DataSet para ambos os DataAdapters:

5. Vamos agora escrever um pouco de código para o evento Click do botão de comando :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

'Preenche o DataSet

Me.SqlDataAdapter1.Fill(DataSet11, "Clientes")

Me.SqlDataAdapter2.Fill(DataSet11, "Pedidos")

 

'cria o relacionamento entre as tabelas usando o campo comum CódigoDoPedido

DataSet11.Relations.Add("ClientesPedidos", DataSet11.Tables("Clientes").Columns("CódigoDoCliente"), DataSet11.Tables("Pedidos").Columns("CódigoDoCliente"))

DataGrid1.DataSource = DataSet11

DataGrid2.DataSource = DataSet11

 

DataGrid1.SetDataBinding(DataSet11, "Clientes")

DataGrid2.SetDataBinding(DataSet11, "Clientes.ClientesPedidos")

End Sub

6 - Para terminar o código do botão - Sair - que encerra a aplicação :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

SqlConnection1.Close()

SqlDataAdapter1.Dispose()

SqlDataAdapter2.Dispose()

Me.Close()

End Sub

Pronto ! agora é só rodar a aplicação e clicar no botão - Carregar :

Se você clicar no código do cliente na DataGrid que exibe os clientes , o DataGrid correspondente aos pedidos exibirá os pedidos daquele cliente.

Usando os assistentes de conexão do VS.NET e pouco código criamos um aplicação com recursos que são muito usados em aplicações comerciais.

Até o próximo artigo VB .NET ...

Referências:


José Carlos Macoratti