Buscar

Tutorial 3 Camadas C# - José Fernando

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
José Fernando Ferreira Araújo 
Sistema de contato 3 camadas: 
I-Parte – Banco 
 
Construa um banco de dados. (Neste tutorial estou usando o SQL Server 2012). 
 
CREATE DATABASE bdcontato 
-- remova as linhas de cima primeiro. Atenção se não vai da erro 
USE bdcontato 
CREATE TABLE tbcontato 
 ( 
 codigo INT NOT NULL PRIMARY KEY IDENTITY(1, 1), 
 nome VARCHAR(130), 
 endereco VARCHAR(150), 
 telefone CHAR(13) 
 ); 
 
Vamos criar o projeto em c#, utilizando a IDE Microsoft Visual Studio 2010. Para isso clique no menu 
File > Nem > Project ou Ctrl+Shift+N. 
 
 
2 
 
 
No Visual C# > Windows > Windows Forms Application. 
Em Name = Digite o nome do Projeto. Ex. sisContato 
 
 
 
Na aba Solution Explorer, vamos criar duas pastas que vão ficar responsáveis pela lógica de negócio e 
de acessos a dados. 
Parar isso clique com o botão direito Em sisContato > Add > New Folder e crie as pastas Dados e 
Negócios. 
Conforme a imagem a seguir: 
 
3 
 
Crie a classe Banco na pasta Dados, deverá conter esses códigos: 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data.SqlClient; 
using SysContato.Dados; 
using SysContato.Negócios; 
using System.Windows.Forms; 
using System.Data; 
 
Criar a Conexão com o banco de dados 
public static string conexao = @"server=.\SQLEXPRESS; Database=bdcontato;Integrated Security=True;"; 
 
Como vamos saber a conexão com o banco de dados manualmente? 
server= Significa o Servidor do Banco de dados. Geralmente para saber onde esta o servidor, entre no SQL 
Server e copie o nome do Servidor, conforme a imagem: 
 
 
Database = Nome do banco de dados, não é necessário inserir a extensão do banco (.mdf); 
Esses dois são os mais importantes. 
 
 
4 
 
Para isso é indiscutível declarar o namespace para acessar os métodos e classe do banco de dados SQL Server. 
 
 using System.Data.SqlClient; 
 
Abrir a conexão com o banco de dados 
 
 SqlConnection conn = new SqlConnection(conexao); 
 
Declara o comando SQL, sendo inicializado como vazio (null). 
 
 SqlCommand cmd = null; 
 
Criar o método para o comando SQL, que fica responsável por inserir, atualizar e excluir e utilizar o parâmetro 
para inserir o comando SQL. 
 
 public void ComandoSQL(string Sql) 
 { 
 //Abre a Conexão 
 conn.Open(); 
 //Inseri o comando SQL e atribuir a conexão do banco de dados 
 cmd = new SqlCommand(Sql, conn); 
 //Executa o comando sql 
 cmd.ExecuteNonQuery(); 
 //Fechar a conexão 
 conn.Close(); 
 
5 
 
Consulta no banco de dados. Utilizar o parâmetro DataGridView para a exibição dos dados, e outro parâmetro 
para o comando SQL. 
 
 public void Consultar(DataGridView dgv, string Sql) 
 { 
 cmd = new SqlCommand(Sql, conn); 
 conn.Open(); 
 
 //Diz que o comando é uma query(Texto) e não uma StoredProcedure 
 cmd.CommandType = CommandType.Text; 
 //O SqlDataAdapter serve para ligar os dados que estão num banco de 
 //dados SQL Server com os objetos DataSet e DataTable. 
 SqlDataAdapter da = new SqlDataAdapter(cmd); 
 //representa a estrutura de uma tabela de um banco de dados. 
 DataTable cliente = new DataTable(); 
 
 //Adiciona ou atualizar linhas em um intervalo especificado no 
 //DataSet para que correspondam à fonte de dados usando o nome do DataTable, neste caso o 'cliente' 
 da.Fill(cliente); 
 //Define a Fonte de dados do DataGridView 
 dgv.DataSource = cliente; 
 //Fechar a conexão com o banco de dados 
 conn.Close(); 
 } 
Terminamos a I º parte agora. 
6 
 
II Parte - Camada de Negócio 
 
Crie uma nova classe chamada RegraNegocio, que deve conter estes códigos: 
 
 
 using System; 
 using System.Collections.Generic; 
 using System.ComponentModel; 
 using System.Data; 
 using System.Drawing; 
 using System.Linq; 
 using System.Text; 
 using System.Windows.Forms; 
 using SysContato.Negócios; 
 using SysContato.Dados; 
 
 
Vamos criar os campos privados da classe, conforme a seguir: 
 
 
 
 class RegraNegocio 
 { 
 
 public int Codigo; 
 public string Nome; 
 public string Endereco; 
 public string Telefone; 
 
 
 
 
 
7 
 
Encapsule os campos, para isso clique no nome do campo (código,nome,endereco e telefone) e Ctrl+R + Ctrl+ E e 
clique em ok. Conforme a imagem 
 
 // criação dos metodos SETs para atribuição de dados 
 public void setCodigo(int Codigo) 
 { 
 this.Codigo = Codigo; 
 } 
 // criação dos metodos SETs para atribuição de dados 
 public void setNome(string Nome) 
 { 
 this.Nome = Nome; 
 } 
 // criação dos metodos SETs para atribuição de dados 
 public void setEndereco(string Endereco) 
 { 
 this.Endereco =Endereco; 
 } 
 // criação dos metodos SETs para atribuição de dados 
 public void setTelefone(string Telefone) 
 { 
 this.Telefone = Telefone; 
 } 
 // Criação dos metodos GETs para receber os dados Informados 
 public int getCodigo() 
 { 
 return this.Codigo; 
 } 
 public string getNome() 
 { 
 return this.Nome; 
 } 
 public string getEndereco() 
 { 
 return this.Endereco; 
 } 
 public string getTelefone() 
 { 
 return this.Telefone; 
 } 
 
 
 
 
 
 
Feito isso vamos chamar a classe Banco dentro da classe RegraNegocio.Banco dal = new Banco(); 
8 
 
 
 
 
Criar o método para inserir o contato 
 
 public void InserirContato() 
 { 
 try 
 { 
 dal.ComandoSQL("INSERT INTO TBCONTATO(nome,endereco,telefone) VALUES('" + Nome 
+"','" + Endereco + "','" + Telefone + "')"); 
 } 
 catch (Exception ex) 
 { 
 throw ex; 
 } 
 } 
 
 
 
 
 
 
 
Criar o método atualizar Contato 
 
 public void AtualizarContato() 
 { 
 try 
 { 
 dal.ComandoSQL("UPDATE tbContato set nome='" + Nome + "',endereco='" + Endereco 
+ "',telefone= '" + Telefone + "'where codigo= " + Codigo + ""); 
 } 
 catch (Exception ex) 
 { 
 throw ex; 
 } 
 } 
 
9 
 
 
 
 
 
Criar o método Excluir Contato 
 
 
 public void ExcluirContato() 
 { 
 try 
 { 
 dal.ComandoSQL("DELETE FROM tbContato where codigo= " + Codigo + ""); 
 } 
 catch (Exception ex) 
 { 
 throw ex; 
 } 
 } 
 
 
 
 
 
Criar o método Preencher DataGridView 
 
 public void PreencherDataGrid(DataGridView dgv) 
 { 
 dal.Consultar(dgv, "SELECT * FROM tbcontato"); 
 } 
 
 
Criar o método para Consultar por Código 
 
 public void ConsultarCodigo(DataGridView dgv) 
 { 
 dal.Consultar(dgv, "SELECT * FROM tbcontato WHERE codigo=" + Codigo + ""); 
 } 
10 
 
 
 
 
Criar o método para Consultar por Nome 
 
 public void ConsultarNome(DataGridView dgv) 
 { 
 dal.Consultar(dgv, "SELECT * FROM tbcontato WHERE Nome like '%" + Nome + "%'"); 
 } 
 
 
 
Criar o método para Consultar por Telefone 
 
 public void ConsultarTelefone(DataGridView dgv) 
 { 
 dal.Consultar(dgv, "SELECT * FROM tbcontato WHERE telefone like '%" + Telefone + 
"%'"); 
 } 
 
 
Terminamos a II parte agora. 
 
 
 
 
 
 
 
 
 
11 
 
III parte- Camada de Apresentação 
 
Renomeie o formulário form1.cs para frmContato.cs 
 
Nome Valor O que é? 
Name frmContato Nome do Formulário 
BackColor White Plano de Fundo 
Icon Escolha o ícone com extensão .icon Ícone 
Size 509; 733 Tamanho do Formulário 
StartPosition CenterScreen Posição inicia 
Text Contatos Titulo 
 
1ºPasso para criação tela de interface. 
 
 
 
textBox1 = txtCodigo 
 textBox2 = txtNome 
 textBox3 = txtEndereco 
maskedTextBox1 = mkTelefone 
12 
 
2ºPasso para criação tela de interface. 
 
 
3ºPasso para criação tela de interface. 
 
buttonToolstrip1 = btnNovo 
buttonToolstrip2 = btnSalvar 
buttonToolstrip3 = btnAtualizar 
buttontoolStrip4 = btnExcluir 
Adicione uma ToolStrip e coloque botões, clique em cima dos botões com o 
botão direito do mouse, e clique em -> “Set image”, após isso, escolha uma 
imagem para o botão. 
combobox1 = cbmFiltro 
maskedTextBox1 = mkPesquisar. 
Na propriedade Items adicione os seguintes textos: 
 Código 
 Nome 
 Telefone 
 
botão pesquisar = btnPesquisar 
 
 
13 
 
4ºPasso para criação tela de interface. 
 
 
 
 
 
 
 
Vá para o código do formulário (F7) 
Seu form deverá conter os seguintes códigos: 
 
 using System; 
 using System.Collections.Generic; 
 using System.ComponentModel; 
 using System.Data; 
 using System.Drawing; 
 using System.Linq; 
 using System.Text; 
 using System.Windows.Forms; 
 
 
 
Adicione a ultima grupobox e dentro dela insira uma DataGridView. Recebendo o nome 
dgvContato. 
 
14 
 
 
Vamos chamar a classe RegraNegocio: 
 
 
 RegraNegocio negocio = new RegraNegocio(); 
 
 
Vamos Habilitar os controles: 
 private void habilitarControles() 
 { 
 txtNome.Enabled = true; 
 txtEndereco.Enabled = true; 
 mkTelefone.Enabled = true; 
 } 
 
Vamos limpar os Campos: 
 
 private void LimparCampo() 
 { 
 
 
 foreach (Control cont in this.Controls) 
 { 
 
 if (cont is GroupBox) 
 { 
 
 for (int i = 0; i < cont.Controls.Count; i++) 
 { 
 
 if (cont.Controls[i] is TextBox) 
 
 
 (cont.Controls[i] as TextBox).Text = ""; 
 
 
 if (cont.Controls[i] is ComboBox) 
 
 
 (cont.Controls[i] as ComboBox).SelectedIndex = -1; 
 
 
 if (cont.Controls[i] is MaskedTextBox) 
 
 
 (cont.Controls[i] as MaskedTextBox).Text = ""; 
 
 } 
 } 
 } 
 } 
15 
 
 
No evento load do formulário insira o código a seguir 
 
 private void frmContato_Load(object sender, EventArgs e) 
 { 
 btnNovo.Enabled = true; 
 negocio.PreencherDataGrid(dgvContato); 
 } 
 
 
Clique no botão novo e insira o código a seguir: 
 
 
 private void btnNovo_Click_1(object sender, EventArgs e) 
 { 
 
 txtCodigo.Enabled = true; 
 txtNome.Enabled = true; 
 txtEndereco.Enabled = true; 
 mkTelefone.Enabled = true; 
 
 
 
 habilitarControles(); 
 
 btnNovo.Enabled = true; 
 btnAtualizar.Enabled = true; 
 btnExcluir.Enabled = true; 
 
 
 if (txtNome.Text != null) 
 { 
 txtNome.Focus(); 
 btnSalvar.Enabled = true; 
 } 
 LimparCampo(); 
 } 
 
 
 
 
 
16 
 
Clique no botão Salvar e insira o código a seguir: 
 
 
 private void btnSalvar_Click_1(object sender, EventArgs e) 
 { 
 
 
 if (txtNome.Text != null) 
 { 
 RegraNegocio cln = new RegraNegocio(); 
 
 
 cln.Nome = this.txtNome.Text; 
 cln.Endereco = this.txtEndereco.Text; 
 cln.Telefone = this.mkTelefone.Text; 
 cln.InserirContato(); 
 negocio.PreencherDataGrid(dgvContato); 
 btnSalvar.Enabled = false; 
 btnAtualizar.Enabled = true; 
 btnExcluir.Enabled = true; 
 MessageBox.Show("Contato cadastrado com sucesso", 
 "Sucesso", 
 MessageBoxButtons.OK,MessageBoxIcon.Information); 
 } 
 else 
 { 
 txtNome.Focus(); 
 btnNovo.Enabled = false; 
 MessageBox.Show("Adicione um nome de Usuário", 
 "Atenção", 
 MessageBoxButtons.OK, 
 MessageBoxIcon.Information); 
 } 
 } 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17 
 
 
Clique no botão Atualizar e insira o código a seguir: 
 
 private void btnAtualizar_Click(object sender, EventArgs e) 
 { 
 
 try 
 { 
 
 
 
 
 if (txtCodigo.Text != null) 
 { 
 DialogResult result = MessageBox.Show("Deseja atualizar?", "ATENÇÂO", 
MessageBoxButtons.YesNoCancel); 
 if (result == DialogResult.Yes) 
 { 
 
 
 negocio.Codigo = int.Parse(txtCodigo.Text); 
 negocio.Nome = txtNome.Text; 
 negocio.Endereco = txtEndereco.Text; 
 negocio.Telefone = mkTelefone.Text; 
 negocio.AtualizarContato(); 
 negocio.PreencherDataGrid(dgvContato); 
 
 MessageBox.Show("Atualizado com sucesso", 
 "Sucesso", 
 MessageBoxButtons.OK, 
 MessageBoxIcon.Information); 
 } 
 
 
 } 
 } 
 
 
 
 
 catch (Exception) 
 { 
 
 MessageBox.Show("O Campo código é obrigatório", 
 "Atenção", 
 MessageBoxButtons.OK, 
 MessageBoxIcon.Information); 
 
 } 
 } 
 
 
18 
 
 
Clique no botão excluir e insira o código a seguir: 
 
 
 
 private void btnExcluir_Click_1(object sender, EventArgs e) 
 { 
 try 
 { 
 if (txtCodigo.Text != null) 
 { 
 DialogResult result = MessageBox.Show("Deseja Excluir?", "ATENÇÂO", 
MessageBoxButtons.YesNoCancel); 
 if (result == DialogResult.Yes) 
 { 
 
 
 negocio.Codigo = int.Parse(txtCodigo.Text); 
 negocio.ExcluirContato(); 
 LimparCampo(); 
 negocio.PreencherDataGrid(dgvContato); 
 btnExcluir.Enabled = true; 
 btnAtualizar.Enabled = true; 
 MessageBox.Show("Excluido com sucesso", 
 "Sucesso", 
 MessageBoxButtons.OK, 
 MessageBoxIcon.Information); 
 } 
 
 } 
 } 
 
 catch (Exception) 
 { 
 
 MessageBox.Show("O Campo Código é obrigatório", 
 "Atenção", 
 MessageBoxButtons.OK, 
 MessageBoxIcon.Information); 
 
 } 
 } 
 
 
 
 
 
19 
 
 
Clique no botão pesquisar e insira o código a seguir: 
 
private void btnPesquisar_Click_1(object sender, EventArgs e) 
 { 
 if (cmbFiltro.Text == "Código") 
 { 
 negocio.Codigo = int.Parse(mkPesquisar.Text); 
 negocio.ConsultarCodigo(dgvContato); 
 } 
 if (cmbFiltro.Text == "Nome") 
 { 
 negocio.Nome = mkPesquisar.Text; 
 negocio.ConsultarNome(dgvContato); 
 } 
 if (cmbFiltro.Text == "Telefone") 
 { 
 negocio.Telefone = mkPesquisar.Text; 
 negocio.ConsultarTelefone(dgvContato); 
 } 
 if (cmbFiltro.Text == "") 
 { 
 negocio.PreencherDataGrid(dgvContato); 
 } 
 } 
 
 
 
 
 
 
Clique duas vezes na ComboBox do Filtro de pesquisa e insira o código a seguir: 
 
 
 private void cmbFiltro_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 { 
 if (cmbFiltro.Text == "Telefone") 
 { 
 mkPesquisar.Mask = "(00)0000-0000"; 
 } 
 else 
 { 
 mkPesquisar.Clear(); 
 mkPesquisar.Mask = ""; 
 } 
 } 
 } 
 
20 
 
No evento da DataGridView e insira o código a seguir: 
 
 private void dgvContato_Click(object sender, EventArgs e) 
 { 
 habilitarControles(); 
 btnAtualizar.Enabled = true; 
 btnExcluir.Enabled = true; 
 txtCodigo.Text = dgvContato.CurrentRow.Cells[0].Value.ToString(); 
 txtNome.Text = dgvContato.CurrentRow.Cells[1].Value.ToString(); 
 txtEndereco.Text = dgvContato.CurrentRow.Cells[2].Value.ToString(); 
 mkTelefone.Text = dgvContato.CurrentRow.Cells[3].Value.ToString(); 
 } 
 
 
 
Como ficaria o formulário. 
 
 
Terminamos a III parte.

Continue navegando