Escolar Documentos
Profissional Documentos
Cultura Documentos
AcessoMySQL CSharp1
AcessoMySQL CSharp1
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: