Buscar

Aplicativo CRUD em Windows Forms

Prévia do material em texto

DOCENTE: JOSÉ QUEIRÓS
UNIVERSIDADE DE BELAS – UNIBELAS
FACULDADE DE ENGENHARIA
DEPARTAMENTO DE ENGENHARIA INFORMÁTICA
__________________ || ____________________
DISCIPLINA: POO-IV
E-mail: jose.queiros@fduan.ao
Windows Forms .NET
Criar um aplicativo Windows Forms no Visual Studio com C#
Windows Forms .NET
Criar um aplicativo Windows Forms no Visual Studio com C#
A aplicação possui somente um formulário e faz o CRUD -Inclusão, 
exclusão, atualização e selecção - na tabela Contatos da base de 
dados Cadastro do SQL Server.
Windows Forms .NET
script SQL para criar a tabela Contatos
USE[Cadastro]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Contatos] (
[id][int] IDENTITY(1, 1) NOT NULL,
[nome] [nchar] (100) NULL,
[endereco][nchar] (200) NULL,
[telemovel][nchar] (15) NULL,
[email][nchar] (100) NULL,
CONSTRAINT[PK_Contatos] PRIMARY KEY CLUSTERED 
(
[id] ASC
)WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON[PRIMARY]
) ON[PRIMARY]
GO
Windows Forms .NET
script C# usado para criar o aplicativo
Devemos incluir no projecto uma referência ao namespace
: System.Data.SqlClient e System.Data para aceder 
os recursos da ADO .NET.
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
Windows Forms .NET
script C# usado para criar o aplicativo
No início do formulário vamos declarar a string de conexão e 
algumas variáveis objectos para ser usado no projecto:
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection("Data Source=.;Initial 
Catalog=Cadastro;Integrated Security=True");
SqlCommand cmd;
SqlDataAdapter adapt;
int id = 0;
public Form1()
{
InitializeComponent();
ExibirDados();
}
Windows Forms .NET
script C# usado para criar o aplicativo
No construtor do formulário chamamos o método ExibirDados() para aceder 
a tabela e exibir informações no controle DataGridView
public Form1() {
InitializeComponent();
ExibirDados();
}
Windows Forms .NET
script C# usado para criar o aplicativo
A seguir temos o código do 
método ExibirDados() que 
abre a conexão, cria um 
DataTable e acede todos os 
registros da 
tabela Contatos e preenche 
o DataTable exibindo-o a 
seguir no DatagridView:
private void ExibirDados()
{
try
{
con.Open();
DataTable dt = new DataTable();
adapt = new SqlDataAdapter("SELECT * FROM 
Contatos", con);
adapt.Fill(dt);
dgvAgenda.DataSource = dt;
}
catch
{
throw;
}
finally
{
con.Close();
}
}
Windows Forms .NET
script C# usado para criar o aplicativo
A seguir temos 
o código do 
botão Novo qu
e limpa os 
campos do 
formulário :
private void btn_salvar_Click_1(object sender, EventArgs e)
{
if (textNome.Text != "" && textEndereco.Text != "" && textTelemovel.Text != "" && textEmail.Text != 
"")
{
try
{
cmd = new SqlCommand("INSERT INTO Contatos(nome,endereco,celular,telefone,email) 
VALUES(@nome,@endereco,@celular,@telefone,@email)", con);
con.Open();
cmd.Parameters.AddWithValue("@nome", textNome.Text.ToUpper());
cmd.Parameters.AddWithValue("@endereco", textEndereco.Text.ToUpper());
cmd.Parameters.AddWithValue("@telemovel", textTelemovel.Text.ToUpper());
cmd.Parameters.AddWithValue("@email", textEmail.Text.ToLower());
cmd.ExecuteNonQuery();
MessageBox.Show("Cadastro feito com sucesso...");
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
finally
{
con.Close();
ExibirDados();
// LimparDados();
}
}
else
{
MessageBox.Show("Informe todos os dados requeridos");
Windows Forms .NET
Para salvar as informações de 
um novo Contato usamos o 
código a seguir no 
botão Salvar:
private void btn_salvar_Click_1(object sender, EventArgs e)
{
if (textNome.Text != "" && textEndereco.Text != "" && textTelemovel.Text != "" && textEmail.Text != "")
{
try
{
cmd = new SqlCommand("INSERT INTO Contatos(nome,endereco,celular,telefone,email) 
VALUES(@nome,@endereco,@celular,@telefone,@email)", con);
con.Open();
cmd.Parameters.AddWithValue("@nome", textNome.Text.ToUpper());
cmd.Parameters.AddWithValue("@endereco", textEndereco.Text.ToUpper());
cmd.Parameters.AddWithValue("@telemovel", textTelemovel.Text.ToUpper());
cmd.Parameters.AddWithValue("@email", textEmail.Text.ToLower());
cmd.ExecuteNonQuery();
MessageBox.Show("Cadastro feito com sucesso...");
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
finally
{
con.Close();
ExibirDados();
// LimparDados();
}
}
else
{
MessageBox.Show("Informe todos os dados requeridos");
}
}
Windows Forms .NET
private void btn_novo_Click(object sender, EventArgs e)
{
textNome.Text = "";
textEmail.Text = "";
textTelemovel.Text = "";
textEndereco.Text = "";
textNome.Focus();
}
A seguir temos o código do botão Novo que limpa os campos do 
formulário :
Windows Forms .NET
private void btn_actualizar_Click(object sender, EventArgs e)
{
if (textNome.Text != "" && textEndereco.Text != "" && textTelemovel.Text != "" && textEmail.Text != "")
{
try
{
cmd = new SqlCommand("UPDATE Contatos SET nome=@nome, endereco=@endereco, celular=@celular,telefone=@telefone,email=@email 
WHERE id=@id", con);
con.Open();
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@nome", textNome.Text.ToUpper());
cmd.Parameters.AddWithValue("@endereco", textEndereco.Text.ToUpper());
cmd.Parameters.AddWithValue("@telemovel", textTelemovel.Text.ToUpper());
cmd.Parameters.AddWithValue("@email", textEmail.Text.ToLower());
cmd.ExecuteNonQuery();
MessageBox.Show("Registro atualizado com sucesso...");
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
finally
{
con.Close();
ExibirDados();
// LimparDados();
}
}
else
{
MessageBox.Show("Informe todos os dados requeridos");
}
}
Para atualizar registro definimos 
uma instrução SQL - UPDATE 
SET.
Windows Forms .NET
private void btn_eliminar_Click(object sender, EventArgs e)
{
if (id != 0)
{
if (MessageBox.Show("Deseja Eliminar este registro ?", "Agenda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
cmd = new SqlCommand("DELETE Contatos WHERE id=@id", con);
con.Open();
cmd.Parameters.AddWithValue("@id", id);
cmd.ExecuteNonQuery();
MessageBox.Show("registro eliminado com sucesso...!");
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
finally
{
con.Close();
ExibirDados();
//LimparDados();
}
}
}
else
{
MessageBox.Show("Selecione um registro para eliminar");
}
}
O código para excluir um contato 
usa a instrução 
SQL DELETE com a 
cláusula WHERE e o código do 
contato
Windows Forms .NET
private void dgvAgenda_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
id = Convert.ToInt32(dgvAgenda.Rows[e.RowIndex].Cells[0].Value.ToString());
textNome.Text = dgvAgenda.Rows[e.RowIndex].Cells[1].Value.ToString();
textEndereco.Text = dgvAgenda.Rows[e.RowIndex].Cells[2].Value.ToString();
textTelemovel.Text = dgvAgenda.Rows[e.RowIndex].Cells[4].Value.ToString();
textEmail.Text = dgvAgenda.Rows[e.RowIndex].Cells[5].Value.ToString();
}
catch { }
}
O utilizador pode seleccionar uma linha do controle DataGridView para exibir os respectivos
dados nas caixas de texto do formulário. O código que faz isso é o seguinte:
Windows Forms .NET
Este projecto foi criado usando uma abordagem para iniciantes mas ele fere os
princípios das boas práticas de programação visto que o formulário além de
apresentar os dados também faz o acesso e a manutenção dos dados.
Em uma aplicação mais robusta recomenda-se separar o código de acesso a dados em
uma classe ou um novo projecto para separar as responsabilidades.
Fica como um desafio a criação de uma classe para aceder os dados e a remoção de
todo o código de acesso a dados e suas referências do formulário.
Windows Forms .NET
C# - Agenda de Contactos - CRUD com SQL Server

Continue navegando

Outros materiais