C#
- PostGreSQL - CRUD Básico - III
Na segunda parte deste artigo criamos a solução no Visual C# 2010 Express e criamos a nossa camada de acesso a dados: DAL
Vamos agora criar a interface com usuário usando uma aplicação do tipo Windows Forms e a linguagem C# que vai usar a camada de acesso a dados para realizar as operações CRUD.
Abra o projeto criado no artigo anterior no Visual C# 2010 Express Edition. (Você também pode abrir no Visual Studio 2012 Express for desktop)
Nosso formulário contendo os controles que irão interagir com o usuário já foi definido no artigo anterior e agora vamos implementar as funcionalidades para exibir, inserir, atualizar e deletar registros.
Na figura abaixo vemos o nosso formulário e vamos usar o evento Click dos botões de comando para implementar cada funcionalidade.
![]() |
A seguir vamos declarar os seguintes namespaces na classe:
| using
System; using System.Windows.Forms; |
No início do formulário vamos criar uma instância da classe DAL e declarar a variável codigo que irá armazenar o id do funcionário.
| int
codigo; DAL acesso = new DAL(); |
Vamos agora definir cada funcionalidade iniciando pelo botão Exibir:
No evento Click do botão Exibir inclua o código abaixo:
private void btnExibir_Click(object sender, EventArgs e)
{
try
{
atualizarExibicao();
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
}
|
O código da rotina atualizarExibicao() e visto abaixo:
| private void atualizarExibicao() { dgvFunci.DataSource = acesso.GetTodosRegistros(); } |
A rotina usa o método GetTodosRegistros da camada de acesso a dados para obter os dados da tabela e exibir no DataGridView.
No evento Click do botão Atualizar digite o código abaixo:
private void btnAtualizar_Click(object sender, EventArgs e)
{
if (txtNome.Text == string.Empty || txtEmail.Text == string.Empty || txtIdade.Text == string.Empty)
{
txtNome.Focus();
return;
}
try
{
acesso.AtualizarRegistro(codigo,txtEmail.Text, Convert.ToInt32(txtIdade.Text));
atualizarExibicao();
Mensagem();
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
btnInserir.Enabled = true;
}
|
Estamos chamando o método AtualizarRegistro() da classe DAL passando como argumentos o código, o email e a idade.
Para obter os registros do controle DataGridView e exibir nos controles TextBox do formulário quando o usuário clicar em uma linha do DataGridView definimos o código abaixo no evento dgvFunci_CellEnter:
private void dgvFunci_CellEnter(object sender, DataGridViewCellEventArgs e)
{
codigo = Convert.ToInt32(dgvFunci.Rows[e.RowIndex].Cells[0].Value);
txtNome.Text = Convert.ToString(dgvFunci.Rows[e.RowIndex].Cells[1].Value);
txtEmail.Text = Convert.ToString(dgvFunci.Rows[e.RowIndex].Cells[2].Value);
txtIdade.Text = Convert.ToString(dgvFunci.Rows[e.RowIndex].Cells[3].Value);
}
|
A clicar em uma célula ou linha do DataGridView iremos obter os valores de cada célula e exibi-los nas caixas de texto do formulário.
No evento Click do botão Inserir temos o código a seguir:
private void btnInserir_Click(object sender, EventArgs e)
{
if (btnInserir.Text == "Inserir")
{
limpaTextBox(this);
txtNome.Focus();
btnInserir.Text = "Salvar";
}
else
{
if (btnInserir.Text == "Salvar")
{
if (txtNome.Text == string.Empty)
{
btnInserir.Text = "Inserir";
return;
}
acesso.InserirRegistros(txtNome.Text,txtEmail.Text,Convert.ToInt32(txtIdade.Text));
btnInserir.Text = "Inserir";
atualizarExibicao();
Mensagem();
}
}
}
|
O método InserirRegistros() da classe DAL é chamado com argumentos: nome, eamil e idade.
A rotina limpaTextBox() possui o seguinte código:
public void limpaTextBox(Control control)
{
foreach (Control c in control.Controls)
{
if (c is TextBox)
{
((TextBox)c).Clear();
}
if (c.HasChildren)
{
limpaTextBox(c);
}
}
}
|
Finalmente no evento Click do botão Deletar inclua o código abaixo:
private void btnDeletar_Click(object sender, EventArgs e)
{
if (txtNome.Text == string.Empty)
{
return;
}
try
{
acesso.DeletarRegistro(txtNome.Text);
atualizarExibicao();
Mensagem();
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message);
}
}
|
Para deletar um registro chamamos o método DeletarRegistro() passando o argumento nome.
A rotina para exibir uma mensagem ao usuário possui o seguinte código :
| private
void Mensagem() { MessageBox.Show("Operação realizada com sucesso !"); } |
A rotina Mensagem() apenas exibe uma caixa de mensagem indicando que operação foi feita com sucesso.
Executando o projeto iremos obter o resultado abaixo após algumas operações.
![]() |
Embora eu não tenha criada uma camada de negócios (BLL), por questão de simplicidade, em um projeto mais complexo com certeza isso seria necessário.
Pegue o projeto completo
aqui:
PostgreSQL_CRUD.zip
Joã 8:34
Replicou-lhes Jesus: Em verdade, em verdade vos digo que todo aquele que comete pecado é escravo do pecado.Joã 8:35
Ora, o escravo não fica para sempre na casa; o filho fica para sempre.Joã 8:36
Se, pois, o Filho vos libertar, verdadeiramente sereis livres.Referências: