Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Neste artigo eu vou mostrar (novamente) como gerenciar um banco de dados MySQL efetuando as
operações de acesso, seleção, inclusão , alteração e exclusão usando a linguagem C# e ADO .NET.
Vamos também criar a entidade Produto que será o objeto do nosso negócio e que possuirá 3
propriedades: ID, Nome e Preco representando assim cada coluna da tabela Estoque. A entidade terá o
namespace DTO e a classe Produto.
Eu poderia criar 3 projetos distintos mas para simplificar vou criar as seguintes classes :
Lembrando que em uma aplicação em 3 camadas temos uma hierarquia de chamadas onde :
A UI chama a BLL que chama a DLL que por sua vez acesso os dados e retorna os objetos;
Nunca deverá haver uma chamada direta da UI para a DAL e vice-versa.(Quando usamos os controles de
acesso a dados vinculados no formulário estamos fazendo o acesso direto da camada de interface para a
DAL ou banco de dados o que não é uma boa prática.)
Se você não possuir o MySQL e o Connector .NET para o MySQL deverá efetuar o download e instalar. A
instalação é simples basta clicar no pacote e seguir as orientações aceitando as configurações padrão.
Veja a seguir a sequência de telas principais da instalação:
• Criar um banco de dados no MySQL Chamado Cadastro e uma tabela chamada Estoque com os
campos ID, Nome e Preco;
• Criar um novo projeto Windows Forms no Visual C# 2008 Express ou SharpDevelop;
Embora eu já tenha descrito como criar um banco de dados no MySQL usando MySQL Administrator vou
resumidamente repetir os passos:
• Abra o MySQL Admininistrator, e, na área inferior esquerda, onde são exibidos os esquemas.
clique com o botão direito e selecione a opção : Create New Schema;
• Na janela Create new Schema e informe o nome do banco de dados , no nosso caso, Cadastro, e
tecle OK;
• Clique sobre o esquema criado e selecione a opção Create New Table ou clique no botão Create
Table;
• A seguir defina o nome da tabela como Estoque e defina os campos da mesma conforme a figura
abaixo:
• A seguir a partir do menu Tools selecione a opção MySQL Query Browse;
• Na janela do MySQL Query Browse digite a instrução INSERT INTO Estoque VALUES (',"Caderno",
1.23) e clique no botão Execute para incluir um registro na tabela. Repita a operação e inclua
uma borracha com um valor de forma que ao efetuar uma instrução SELECT * FROM Estoque
iremos obter o resultado abaixo;
Neste momento já temos o banco de dados Cadastro e a tabela Estoque com dois registros.
Abra o SharpDevelop ou o Visual C# 2008 Express e crie um novo projeto do tipo Windows Application
com o nome MySQL_C#;
Devemos incluir a referência ao Connector .NET para ter acesso as classes de acesso a dados do MySQL.
Para isso clique sobre o nome do projeto e selecione a opção Add Reference;
A seguir inclua uma referência a dll do MySQL Connector .NET selecionando na pasta onde foi instalado
e clicando no botão Abrir/Open;
• 3 controles Label
• 3 Controles TextBox :txtID, txtNome e txtPreco
• 5 controles Button : btnNovo, btnAltear, btnExcluir, btnExibir e btnProcurar
Vamos iniciar criando o arquivo de classe Produto.cs que irá representar a classe Produto, clicando no
nome do projeto e selecionando a opção Add New Item;
A seguir defina o seguinte código nesta classe onde estamos definindo 3 membros e 3 propriedades da
nossa entidade Produto:
using System;
namespace DTO
{
public class Produto
{
int _id;
String _nome;
Decimal _preco;
public int ID
{
get {return _id;}
set {_id = value;}
}
public String Nome
{
get {return _nome;}
set {_nome = value;}
}
public Decimal Preco
{
get {return _preco;}
set {_preco = value;}
}
}
}
Neste arquivo criamos a classe Produto e definimos os membros _id, _nome e _preco e as propriedades
ID, Nome e Preco. Ela será usada para transferência de objetos entre as camadas de interface de
negócio e de acesso a dados.
Agora vamos criar o arquivo de classe DAL.cs clicando no nome do projeto e selecionando a opção Add
New Item;
using System;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using DTO;
O construtor da classe ProdutoDAL define a string de conexão com o banco de dados MySQL:
public produtoDAL()
{
_conexaoMySQL = "server=localhost;user
id=root;password=password;database=cadastro";
}
onde temos:
server - localhost , pois estou acessando o MySQL instalado na minha máquina local;
id = root , pois estou usando o usuário root;
password = password , pois essa foi a senha definida para o usuário root;
database=cadastro, pois esse é o banco de dados que criamos no MySQL;
2- selecteProdutoByID() - Usada para retornar uma entidade Produto representando um único produto
pelo seu código (id);
try{
con = new
MySqlConnection(_conexaoMySQL);
cmd.Parameters.AddWithValue("@id",id);
con.Open();
MySqlDataReader dr;
dr =
cmd.ExecuteReader(CommandBehavior.Close
Connection);
while (dr.Read()) {
produto.ID = Convert.ToInt32(dr["id"]);
produto.Nome = dr["Nome"].ToString();
produto.Preco =
Convert.ToDecimal(dr["Preco"]);
return produto;
throw ex;
3- selectListProdutos() - Usada para retornar uma lista de objetos Produto representando uma coleção
de produtos.
Eu mantive o código o mais simples possível usando ADO .NET clássica e instruções SQL. Poderia ter
usado stored procedures o que seria mais indicado.
Esta é a nossa camada de acesso a dados e sua responsabilidade e acessar e persistir dados no MySQL,
só isso. Veja abaixo uma figura onde temos uma visão da nossa solução:
I
Aguarde no próximo artigo a continuação onde irei criar a camada de negócios - BLL: C# -
Gerenciamento de banco de dados MySQL - II
Referências: