Leia os artigos anteriores:
C# – Gerenciamento de banco de dados MySQL – Parte 02
C# – Gerenciamento de banco de dados MySQL – Parte 01
*
Continuando o assunto dos artigos anteriores, hoje veremos a definição da camada de apresentação
– UI –
da nossa aplicação através da criação
de uma aplicação Windows Forms e assim encerrar esta
série.
Estamos usando uma arquitetura em três
camadas definida assim:
- A
camada de interface: UI
– namespace
UI - A
camada de negócios: BLL
– namespace
BLL e classe produtoBLL - A
camada de acesso a dados: DAL
– namespace
DAL e classe produtoDAL - A classe
Produto
que representa um produto do nosso domínio;
A nossa camada de interface será
uma aplicação Windows
Forms que possui um formulário no qual através
de um componente TabControl podemos obter uma visão com
detalhes do produto e outra visão da relação dos
produtos cadastrados conforme as figuras a seguir:


Para criar esta interface, inclua o
controle TabControl a partir da ToolBox e na sua
propriedade TabPages clique no botão ao lado de
Collection e defina duas TabPages, definindo a
propriedade nome da primeira – TabPage1- como sendo igual a
Cadastro e da segunda – TabPage2 – como Lista:

Inclua o
controle TabControl e defina a sua propriedade Appearence como igual a FlatButtons.
Na TabPage
Cadastro inclua os seguintes controles a partir da
ToolBox:
- 3
Label - 3 TextBox – txtID , txtNome e txtPreco
- 4 Button –
btnNovo, btnAlterar, btnExcluir, btnExibir e btnProcurar
Na TabPge
Lista inclua o componente DataGridView
– gdvProdutos.
Com isso, temos a nossa interface pronta
para ser usada. Fazemos isso acessando os dados da base MySQL e fazendo uma chamada a nossa camada de negócio (BLL), que por
sua vez chama a camada de acesso a dados(DAL) que é
responsável por recuperar e persistir informação
na base de dados.
Vamos usar os eventos dos controles de
formulário Button para fazer a chamada a nossa classe
de negócio. Para isso no início do nosso formulário
devemos ter as seguintes referências:
- using
System; - using
System.Collections.Generic; - using
System.Drawing; - using
System.Windows.Forms; - using
BLL; - using
DTO;
Note que temos que ter uma referência
à camada de negócios BLL a nossa camada DTO –
Data Transfer Object, onde definimos a classe Produto.
Vamos começar com o evento Click
do botão Exibir que irá exibir os dados na
TabPage Lista em um DataGridView;
void<br />BtnExibirClick(object sender,<br />EventArgs e)<br /><br />{<br />try{<br /> BLL.produtoBLL bll = new produtoBLL();<br /> gdvProdutos.DataSource = bll.selecionaProdutos();<br /> }catch (Exception ex){<br /> MessageBox.Show(" Erro : " + ex.Message.ToString());<br /> }<br />} Neste código criamos uma
instância da classe ProdutoBLL() e em seguida usamos o
método selecionaProdutos() que irá retornar um
DataTable e exibir os produtos no DataGridView.
Vejamos agora o código do evento
Click do botão Novo :
void BtnNovoClick(object sender, EventArgs e)<br /><br />{<br /><br /> Produto p = new Produto();<br /><br /> p.Nome = (String) txtNome.Text;<br /><br /> p.Preco = Convert.ToDecimal(txtPreco.Text);<br /><br /> try{<br /><br /> BLL.produtoBLL bll = new produtoBLL();<br /><br /> bll.novoProduto(p);<br /><br /> }<br /><br /> catch (Exception ex)<br /> {<br /><br /> MessageBox.Show(" Erro : " + ex.Message.ToString());<br /><br /> }<br /><br />}Primeiro criamos uma instância da
classe Produto e definimos as propriedades Nome e Preco,
atribuindo a elas os valores fornecidos pelo usuário através
das caixas de texto txtNome e txtPreco. Não precisamos
informar o código do produto (ID) pois isso é
controlado pelo SGBD, visto que definimos este campo como do
tipo identity.
A seguir criamos uma instância da
classe ProdutoBLL()








