Baixe o app para aproveitar ainda mais
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.
Compartilhar