Dev (Back & Front)ARTIGO

C# – Gerenciamento de banco de dados MySQL – Parte 03

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()

é referência em Visual Basic no Brasil e autor dos livros "Aprenda Rápido: ASP" e "ASP, ADO e Banco de Dados na Internet". Mantenedor do site macoratti.net.

Ver perfil