Professional Documents
Culture Documents
/DESIGN
/DESENVOLVIMENTO
Eventos:
/BANCODEDADOS
PHPExperience
/MKTDIGITAL
InterCon
DeveloperWeekBH
DevCommerce
/INFRA
17/07/2015
mercadolivre
/DESENVOLVIMENTO
C#Gerenciamentodebanco
dedadosMySQLParte01
JosCarlosMacorattiem.NET
Compartilhar
...
Tweetar
...
Google+
...
A camada de interface : UI
namespace UI
A camada de negcios : BLL
namespace BLL e classe produtoBLL
A camada de acesso a dados :
DAL namespace DAL e classe produtoDAL
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
1/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
A UIchamaaBLLquechamaa
DLL que, por sua vez, acessa os dados e retorna os
objetos;
2/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
3/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
4/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
5/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
6/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
7/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
3 controles Label
3 Controles TextBox :txtID,
txtNome e txtPreco
5 controles Button : btnNovo,
btnAltear, btnExcluir, btnExibir e btnProcurar
usingSystem
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
8/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
namespaceDTO
{
publicclassProduto
{
int_id
String_nome
Decimal_preco
publicintID
{
get{return_id}
set{_id=value}
}
publicStringNome
{
get{return_nome}
set{_nome=value}
}
publicDecimalPreco
{
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
transferncia de objetos entre as camadas de interface de
negcio e de acesso a dados.
using System;
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
9/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using DTO;
selectListProdutos retorna
uma lista de produtos : List<Produto> com os
produtos selecionados;
selectProdutos retorna um
DataTable com os produtos selecionados;
selectProdutosByID retorna
uma entidade Produto para um produto selecionado pelo seu
cdigo (id);
insertProduto inclui um novo
produto;
updateProduto atualiza um
produto existente;
deleteProduto exclui um
produto existente;
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
10/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
String
_conexaoMySQL = ;
MySqlConnection con = null;
publicprodutoDAL()
{
_conexaoMySQL=
"server=localhostuserid=rootpassword=passworddatabase=cadastr
}
onde temos:
publicDataTableselectProdutos(){
try{
Stringsql="SELECT*FROMEstoque"
con=newMySqlConnection(_conexaoMySQL)
MySqlCommandcmd=newMySqlCommand(sql,con)
MySqlDataAdapterda=newMySqlDataAdapter()
da.SelectCommand=cmd
DataTabledt=newDataTable()
da.Fill(dt)
returndt
}
catch(Exceptionex)
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
11/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
{
throwex
}
}
2- selecteProdutoByID() Usada para
retornar uma entidade Produto representando um nico produto pelo seu
cdigo (id);
publicProduto
selectProdutoByID(intid)
{
try{
Stringsql="SELECT*FROMEstoqueWHEREid=@id"
con=newMySqlConnection(_conexaoMySQL)
MySqlCommandcmd=newMySqlCommand(sql,con)
cmd.Parameters.AddWithValue("@id",id)
con.Open()
MySqlDataReaderdr
Produtoproduto=newProduto()
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"])
}
returnproduto
}
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
12/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
catch(Exceptionex)
{
throwex
}
}
3- selectListProdutos() Usada para
retornar uma lista de objetos Produto representando uma coleo de
produtos.
publicList<Produto>selectListProdutos()
{
try{
using(MySqlConnectionconn=newMySqlConnection(_conexaoM
using(MySqlCommandcommand=newMySqlCommand("Selec
{
conn.Open()
List<Produto>listaProdutos=newList<Produto>()
using(MySqlDataReaderdr=command.ExecuteReader())
{
while(dr.Read()){
Produtoproduto=newProduto()
produto.ID=(int)dr["id"]
produto.Nome=(String)dr["Nome"]
produto.Preco=Convert.ToDecimal(dr["Preco"])
listaProdutos.Add(produto)
}
}
returnlistaProdutos
}
}
}
catch(Exceptionex){
thrownewException("Erroaoacessarestoque"+ex.Message)
}
}
publicvoidinsertProduto(Produtoproduto){
try{
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
13/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
Stringsql="INSERTINTOEstoque(nome,preco)VALUES(@nom
con=newMySqlConnection(_conexaoMySQL)
MySqlCommandcmd=newMySqlCommand(sql,con)
cmd.Parameters.AddWithValue("@nome",produto.Nome)
cmd.Parameters.AddWithValue("@preco",produto.Preco)
con.Open()
cmd.ExecuteNonQuery()
catch(Exceptionex)
throwex
finally{
con.Close()
}
}
5- updateProduto() Usada para atualizar os
dados de um produto no estoque;
publicvoidupdateProduto(Produtoproduto){
try{
Stringsql="UPDATEEstoqueSETnome=@nome,preco=@preco
con=newMySqlConnection(_conexaoMySQL)
MySqlCommandcmd=newMySqlCommand(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(Exceptionex)
throwex
}
finally{
con.Close()
}
}
6- deleteProduto() Usada para excluir um
produto no estoque;
publicvoiddeleteProduto(Produtoproduto){
try{
Stringsql="DELETEFROMEstoqueWHEREid=@id"
MySqlConnectioncon=newMySqlConnection(_conexaoMySQL)
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
14/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
MySqlCommandcmd=newMySqlCommand(sql,con)
cmd.Parameters.AddWithValue("@id",produto.ID)
con.Open()
cmd.ExecuteNonQuery()
catch(Exceptionex)
throwex
finally{
con.Close()
}
}
Eu mantive o cdigo o mais simples possvel usando
ado .net clssica e instrues SQL. Poderia ter usado stored procedures,
o que
seria mais indicado.
C#
GerenciamentodebancodedadosMySQLParte02.
NEWSLETTER
Fiquepordentrodetodasasnovidades,eventos,
cursosemuitomais
seunome
Mensagemdoanunciante:
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
15/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
A Mundipagg lana a inovadora API em REST, garantindo flexibilidade e simplicidade na integrao. Conhea as nossas
seuemail
funcionalidades.
ENVIAR
quintafeira,17desetembrode2009
Compartilhar
...
Tweetar
...
Google+
...
JosCarlosMacoratti
refernciaemVisualBasicnoBrasileautordoslivros"AprendaRpido:ASP"e
"ASP,ADOeBancodeDadosnaInternet".Mantenedordositemacoratti.net.
leiaagora
Interoperabilidadena
prticaParte01
DiegoPachecoem.NET
6comentrios
COMENTE TAMBM
timoartigo!Quandoviraparte2?
Responder
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
PatrciaSouza
17desetembro
de2009s
15:30
16/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
10deabrilde
2010s11:40
Nomanjonadade.neteC#masestoutentandoaprender,
seguitodosospassosdesteartigoenadafunciona,nem
compila!!!nogostei!!!
Responder
Csar1demaiode2011s18:26
Pois,notasequevocnoentendenadade.NET.
Repareiqueapenasnacriaodalistvcusouoartificio
using
enoseparouastringSQL.
25dejunhode
2010s14:40
vcpegouessapartepronta?ouapenasesqueceude
organizarcomoasoutras?
timotuto!
Responder
NopoderiafazerumtutorialexemplificandoesteCRUDcom
c#+MySQLmasemvisualstudio?
AndreLC
14deagosto
de2011s
21:49
Obrigado.
Abrao!
Responder
Comoeucolocoasconfiguraesdobancodedadoscomo
ip,porta,db,user,senhaemumoutroarquivode
configuraoporexemploemumarquivo.iniousuariovaila
ealteraasconfiguraesdoservidor.
joseluiz
21dejaneiro
de2012s
14:50
Responder
OseuendereodeemailnoserpublicadoCamposobrigatriossomarcados*
Nome
um
=6
Comente
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
17/18
17/07/2015
C#GerenciamentodebancodedadosMySQLParte01
ENVIARCOMENTRIO
Hospedado por:
Desenvolvimento
Design
Bancodedados
MarketingDigital
Agenda
CursosOnline
Agile
3dsmax
Interbase
ContedoDigital
Ajax
AnlisedeDados
Acessibilidade
Arquiteturade
Informao
MongoDB
MySQL
Ecommerce
EmailMarketing
Frum
InterCon
7Masters
RevistaiMasters
Oracle
PostgreSQL
Mercado
PublicidadeOnline
SQLServer
RedesSociais
Tendncias
CakePHP
CSS
FrontEnd
HTML
Java
JavaScript
DesignResponsivo
Games
Usabilidade
UserExperience
PHP
Python
Ruby
InfraeCloud
CloudComputing
Linux
Mobile
MicrosoftAzure
Segurana
iPhone&iPad
Android
SiteBlindado
http://imasters.com.br/artigo/14290/csharp/c_gerenciamento_de_banco_de_dados_mysql_parte_01/
Plus
iMastersExpert(englishblog)
Faleconosco
PolticadePrivacidade
SobreoiMasters
18/18