Escolar Documentos
Profissional Documentos
Cultura Documentos
AcessoMySQL CSharp3
AcessoMySQL CSharp3
- III
A nossa camada de interface será uma aplicação Windows Forms que possui um formulário onde 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;
- 3 Label
- 3 TextBox - txtID , txtNome e txtPreco
- 4 Button - btnNovo, btnAlterar, btnExcluir, btnExibir e
btnProcurar
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 a 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;
{
try{
BLL.produtoBLL bll = new produtoBLL();
gdvProdutos.DataSource =
bll.selecionaProdutos();
}catch (Exception ex){
MessageBox.Show(" Erro : " +
ex.Message.ToString());
}
}
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.
p.Preco = Convert.ToDecimal(txtPreco.Text);
try{
bll.novoProduto(p);
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 o mesmo é controlado pelo SGBD visto que definimos
este campo como do tipo identity.
A seguir criamos uma instância da classe ProdutoBLL() no namespace BLL e em seguida usamos o
método novoProduto(p) para incluir um novo produto na base de dados. Observe que passamos como
parâmetro um objeto produto e não valores escalares.
p.ID = Convert.ToInt32(txtID.Text);
p.Preco = Convert.ToDecimal(txtPreco.Text);
try{
Primeiro criamos uma instância da classe Produto e definimos as propriedades ID, Nome e Preco
atribuindo a elas os valores fornecidos pelo usuário através das caixas de texto txtID, txtNome e
txtPreco. Aqui precisamos informar o ID do produto para identificar o produto a ser alterado.
A seguir criamos uma instância da classe ProdutoBLL() no namespace BLL e em seguida usamos o
método alteraProduto(p) para alterar um produto na base de dados. Observe que passamos como
parâmetro um objeto produto e não valores escalares.
{
Produto p = new Produto();
p.ID = Convert.ToInt32(txtID.Text);
try{
BLL.produtoBLL bll = new produtoBLL();
bll.excluiProduto(p);
}
catch (Exception ex)
{
MessageBox.Show(" Erro : " +
ex.Message.ToString());
}
}
Primeiro criamos uma instância da classe Produto e definimos a propriedade ID atribuindo a ela o valor
fornecido pelo usuário através das caixas de texto txtID.
A seguir criamos uma instância da classe ProdutoBLL() no namespace BLL e em seguida usamos o
método excluiProduto(p) para excluir um produto na base de dados identificado pelo parâmetro ID
informado.
Neste código obtemos o código do produto (ID) a partir da caixa de texto txtID.Text. A seguir criamos
uma instância da classe Produto() e invocamos o método listaProdutoPorID usando o id obtido; por fim
exibimos os dados do produto no formulário.
Com isso encerramos a nossa aplicação que acessa o MySQL usando uma arquitetura em camadas.
Aplicamos os conceitos básicos da orientação a objetos mas podemos ir além, pois usamos na camada
DTO uma classe anêmica sem nenhuma inteligência e não usamos o conceito de interface neste projeto.
Deixo isso para você como um exercício.
Obs: A vídeo aula completa desta séria de artigos esta no Super DVD Vídeo Aulas.
Referências: