C# - Gerenciamento de Banco de Dados MySQL - Parte 01
description
Transcript of C# - Gerenciamento de Banco de Dados MySQL - Parte 01
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 1/18
imasters.com.br > Portal Fóruns 7Masters Revista iMasters Consulting Cursos online Agenda Eventos: PHP Experience InterCon Developer Week BH DevCommerce
C# – Gerenciamento de bancode dados MySQL – Parte 01
José Carlos Macoratti em .NET
Neste artigo eu vou mostrar 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 trabalhar usando a arquitetura
em 3 camadas definindo assim:
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.
/DESENVOLVIMENTO
mercadolivre
... ... 0 ...
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
Compartilhar Tweetar Google + Linkedin
/DESIGN /DESENVOLVIMENTO /BANCO DE DADOS /MKT DIGITAL / INFRA
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 2/18
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, acessa 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.)
As ferramentas usadas são:
produtoBLL – contém os métodos dasregras de negócio; (namespace BLL)
produtoDAL – contém os métodos paraacesso a dados no MySQL; (namespace DAL)
produto – contém a classe Produto;(namespace DTO)
UI – representa a nossaaplicação Windows Forms;
Banco de dados MySQL 5.01;http://dev.mysql.com/downloads/mysql/5.1.html
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 3/18
Se você não possuir o MySQL e o Connector .NET para
o MySQL, deverá efetuar o dowload 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:
1-tela inicial de instalação do MySQL
2-Selecione a opção Typical para instalação
3-Verifique o local onde os arquivos serão instalados
MySQL Administrator e MySQLQuery Browse – http://dev.mysql.com/downloads/gui-tools/5.0.html;
MySQl Connector .NET 6.04;http://dev.mysql.com/downloads/connector/
SharpDevelop 3.0 ou Visual
Studio C# 2008; http://www.icsharpcode.net/OpenSource/SD/Download/ ou http://www.microsoft.com/express/vcsharp/
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 4/18
4-Marque a opção para configurar o MySQL
5-Marque a opção Standard Configuration
6-Marque a opção para instalar como um serviço e forneça um nome
para o serviço. O nome padrão é MySQL
7-Informe uma senha ao usuário root
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 5/18
8-Clique no botão Execute para processar as opções definidas
Com os componentes instalados, vamos
efetuar as seguintes tarefas:
Embora eu já tenha descrito como
criar um banco de dados no MySQL usando MySQL Administrator vouresumidamente repetir os passos:
Criar um banco de dados noMySQL Chamado Cadastro e uma tabela
chamada Estoque com os campos ID,
Nome e Preco;
Criar um novo projeto WindowsForms no Visual C# 2008 Express ou SharpDevelop;
Abra o MySQL Admininistrator,e, na área inferior esquerda, onde são exibidos osesquemas. clique com o botão direito e selecione aopção: Create New Schema;
Na janela Create new Schema informe o nome do banco de dados, no
nosso caso,Cadastro, e tecle OK;
Clique sobre o esquema criado eselecione a opção Create New Table ou clique no botão
Create Table;
A seguir defina o nome databela como Estoque e defina os campos da mesma conformea figura abaixo:
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 6/18
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 Applicationcom o nome MySQL_C#;
A seguir, a partir do menu Tools,selecione a opção MySQL Query Browse;
Na janela do MySQL Query Browsedigite a instrução INSERT INTO Estoque VALUES(‘,”Caderno”, 1.23) e clique no botão Executepara incluir um registro na tabela. Repita a operação einclua uma borracha com um valor de forma que, ao efetuaruma instrução SELECT * FROM Estoque, iremos obter oresultado abaixo:
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 7/18
Devemos incluir a referência ao
Connector .NET para ter acesso às 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 adll do MySQL Connector .NET selecionando na pasta onde foi
instalada e clicando no botão Abrir/Open;
No formulário padrão inclua um
controle TabControl e defina dois TabPages:
TabPage1 – Text = Cadastro
TabPage2 – Text = Lista
tabControl1 – Appearence = FlatButtons(para obter a aparência conforme a figura abaixo)
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 8/18
Na primeira TabPage inclua os
seguintes controles:
Na segunda TabPage inclua um
controle DataGridView – gdvProdutos.
Acima vemos o leiaute do formulário
para cada TabPage.
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;
Na janela de templates selecione o
template Class e informe o nome Produto.cs;
A seguir defina o seguinte código nesta classe onde
estamos definindo 3 membros e 3 propriedades da nossa entidade
Produto:
using System;
3 controles Label
3 Controles TextBox :txtID,txtNome e txtPreco
5 controles Button : btnNovo,btnAltear, btnExcluir, btnExibir e btnProcurar
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 9/18
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 aopção Add New Item;
Na janela de templates selecione o
template Class e informe o nome DAL.cs;
Os pacotes usados nesta classe
são:
using System;
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 10/18
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using DTO;
A seguir vamos definir na classeprodutoDAL 6 métodos conforme exibidos abaixo:
Vejamos o código da classe produtoDAL:
Declaramos duas variáveis que serão visíveis na
classe:
selectListProdutos – retornauma lista de produtos : List<Produto> com osprodutos selecionados;
selectProdutos – retorna umDataTable com os produtos selecionados;
selectProdutosByID – retornauma entidade Produto para um produto selecionado pelo seucódigo (id);
insertProduto – inclui um novoproduto;
updateProduto – atualiza umproduto existente;
deleteProduto – exclui umproduto existente;
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 11/18
String
_conexaoMySQL = “”;
MySqlConnection con = null;
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=ca
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 noMySQL;
Agora vejamos os métodos:
1- SelectProdutos – Usada para exibir todos
os produtos do estoque;
public DataTable selectProdutos()try String sql = "SELECT * FROM Estoque"; con = new MySqlConnection(_conexaoMySQL); MySqlCommand cmd = new MySqlCommand(sql,con); MySqlDataAdapter da = new MySqlDataAdapter(); da.SelectCommand = cmd; DataTable dt = new DataTable(); da.Fill(dt); return dt; catch (Exception ex)
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 12/18
throw ex;2- selecteProdutoByID() – Usada para
retornar uma entidade Produto representando um único produto pelo seu
código (id);
public ProdutoselectProdutoByID(int id)
try
String sql = "SELECT * FROM Estoque WHERE id = @id";
con = new MySqlConnection(_conexaoMySQL);
MySqlCommand cmd = new MySqlCommand(sql,con);
cmd.Parameters.AddWithValue("@id",id);
con.Open();
MySqlDataReader dr;
Produto produto = new Produto();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read())
produto.ID = Convert.ToInt32(dr["id"]);
produto.Nome = dr["Nome"].ToString();
produto.Preco = Convert.ToDecimal(dr["Preco"]);
return produto;
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 13/18
catch (Exception ex)
throw ex;
3- selectListProdutos() – Usada para
retornar uma lista de objetos Produto representando uma coleção de
produtos.
public List<Produto> selectListProdutos() try using (MySqlConnection conn = new MySqlConnection(_conex using (MySqlCommand command = new MySqlCommand(" conn.Open(); List<Produto> listaProdutos = new List<Produto>(); using (MySqlDataReader dr = command.ExecuteReader(
while (dr.Read()) Produto produto = new Produto(); produto.ID = (int)dr["id"]; produto.Nome = (String) dr["Nome"]; produto.Preco = Convert.ToDecimal(dr["Preco"]); listaProdutos.Add(produto); return listaProdutos; catch (Exception ex) throw new Exception("Erro ao acessar estoque " + ex.Messag 4- insertProduto() – Usada para incluir um
novo produto no estoque;
public void insertProduto(Produto produto)try
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 14/18
String sql = "INSERT INTO Estoque (nome,preco) VALUES (@ con = new MySqlConnection(_conexaoMySQL); MySqlCommand cmd = new MySqlCommand(sql,con); cmd.Parameters.AddWithValue("@nome",produto.Nome); cmd.Parameters.AddWithValue("@preco",produto.Preco); con.Open();cmd.ExecuteNonQuery();
catch (Exception ex) throw ex; finally con.Close(); 5- updateProduto() – Usada para atualizar os
dados de um produto no estoque;
public void updateProduto(Produto produto)try String sql = "UPDATE Estoque SET nome= @nome ,preco=@ con = new MySqlConnection(_conexaoMySQL); MySqlCommand cmd = new MySqlCommand(sql,con);
cmd.Parameters.AddWithValue("@id",produto.ID); cmd.Parameters.AddWithValue("@nome",produto.Nome); cmd.Parameters.AddWithValue("@preco",produto.Preco); con.Open();cmd.ExecuteNonQuery(); catch (Exception ex) throw ex;
finally con.Close(); 6- deleteProduto() – Usada para excluir um
produto no estoque;
public void deleteProduto(Produto produto)try String sql = "DELETE FROM Estoque WHERE id = @id "; MySqlConnection con = new MySqlConnection(_conexaoMyS
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 15/18
MySqlCommand cmd = new MySqlCommand(sql,con); cmd.Parameters.AddWithValue("@id",produto.ID); con.Open();cmd.ExecuteNonQuery(); catch (Exception ex)
throw ex; finally con.Close(); 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 queseria mais indicado.
Esta é a nossa camada de acesso a dados e sua
responsabilidade é acesssar e persistir dados no MySQL, só isso. Veja
abaixo uma
figura onde temos uma visão da nossa solução:
Aguarde no próximo artigo a continuação onde irei
criar a camada de negócios – BLL:
C#
– Gerenciamento de banco de dados MySQL – Parte 02.
Eu sei, é apenas Visual C#, mas eu gosto…
Mensagem do anunciante:
NEWSLETTERFique por dentro de todas as novidades, eventos,cursos e muito mais
seu nome
X
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 16/18
A Mundipagg lanç a a i nova dora API e m REST, garan tind o fle xibi lida de e simp lici dade na integ ração . Conheça as nossasfuncionalidades.
q u i n t a - f e i r a , 1 7 d e s e t e m b r o d e 2 0 0 9
José Carlos Macoratti
é 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.
Interoperabilidade naprática - Parte 01
Diego Pacheco em .NET
... ... 0 ...
leia agora
6 comentários COMENTE TAMBÉM
ótimo artigo! Quando virá a parte 2?
Responder Patrícia Souza17 de setembro
de 2009 às15:30
Compartilhar Tweetar Google + Linkedin
seu e-mail
ENVIAR
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 17/18
O seu endereço de email não será publicado Campos obrigatórios são marcados *
Nome
um × = 6
Comente
Não manjo nada de .net e C# mas estou tentando aprender,
segui todos os passos deste artigo e nada funciona, nem
compila!!!não gostei!!!
Responder
10 de abril de2010 às 11:40
1 de maio de 2011 às 18:26
Pois é, nota-se que você não entende nada de .NET.
César
Reparei que apenas na criação da list vc usou o artificio
“using”
e não separou a string SQL.
vc pegou essa parte pronta ? ou apenas esqueceu de
organizar como as outras ?
ótimo tuto !
Responder
25 de junho de2010 às 14:40
Não poderia fazer um tutorial exemplificando este CRUD com
c# + MySQL mas em visual studio?
Obrigado.
Abraço!
Responder
AndreLC14 de agostode 2011 às
21:49
Como eu coloco as configurações do banco de dados como
ip, porta, db, user, senha em um outro arquivo deconfiguração por exemplo em um arquivo .ini o usuario vai la
e altera as configurações do servidor.
Responder
jose lui z21 de janeiro
de 2012 às14:50
7/17/2019 C# - Gerenciamento de Banco de Dados MySQL - Parte 01
http://slidepdf.com/reader/full/c-gerenciamento-de-banco-de-dados-mysql-parte-01 18/18
ENVIAR COMENTÁRIO
Desenvolvimento
Agile
Ajax
Análise de DadosCakePHP
CSS
Front End
HTML
Java
JavaScript
PHP
Python
Ruby
Design
3ds max
Acessibil idade
Arquit etur a d eInformação
Design Responsivo
Games
Usabilidade
User Experience
Banco de dados
Interbase
MongoDB
MySQLOracle
PostgreSQL
SQL Server
Infra e Cloud
Cloud Computing
Linux
Microsoft Azure
Segurança
Site Blindado
Marketing Digital
Conteúdo Digital
E-commerce
E-mail MarketingMercado
Publicidade Online
Redes Sociais
Tendências
Mobile
Androi d
iPhone & iPad
Agenda
Fórum
7Masters
Cursos Online
InterCon
Revista iMasters
Sobre o iMasters Política de Privacidade Fale conosco iMasters Expert (english blog)
Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: