C# - CRUD com FireBird 2.5.1 - III


Na segunda parte do artigo eu criei o projeto C# e defini a interface com o usuário e as referências a provedor FireBird .NET, a classe de acesso a dados e a classe de domínio.

Vamos agora implementar as funcionalidades para realizar as operações CRUD (Create,Read,Update,Delete) no nosso banco de dados FireBird.

Implementando as operações CRUD

Abra o projeto CRUD_FireBird no Visual C# 2010 Express Edition.

Selecione o formulário form1.cs para que possamos implementar o acesso aos métodos definidos em nossa classe de acesso a dados AcessoFB.

1-) No evento Load do formulário vamos preencher o controle DataGridView com todos os dados da tabela Clientes;

Para isso defina o código abaixo neste evento:

  private void Form1_Load(object sender, EventArgs e)
  {
            preencheGrid();
 }

O método preencheGrid() tem o seguinte código:

 private void preencheGrid()
 {
            try
            {
                dgvCientes.DataSource = AcessoFB.fb_GetDados().DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
 }

Neste código usamos o método fb_GetDados() para obter todos os dados da tabela Clientes em um DataTable exibindo-os no controle DataGridView;

2-) No evento Click do botão btnProcurar digite o código abaixo:

   private void btnProcurar_Click(object sender, EventArgs e)
   {
            int codigo = Convert.ToInt32(txtID.Text);
            Cliente cliente = new Cliente();
            try
            {
                cliente = AcessoFB.fb_ProcuraDados(codigo);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
            preencheDados(cliente);
 }

Neste código usamos o método fb_ProcuraDados() passando o código do cliente informado na caixa de texto txtID;

O resultado retornado é um objeto Cliente com os dados que são exibidos via rotina preencheDados(cliente);

O código do da rotina preencheDados() é dado abaixo:

  private void preencheDados(Cliente cli)
  {
            txtID.Text = cli.ID.ToString();
            txtNome.Text = cli.Nome;
            txtEndereco.Text = cli.Endereco;
            txtTelefone.Text = cli.Telefone;
            txtEmail.Text = cli.Email;
 }

3-) No evento CellCLick do controle DataGridView ocorre quando clicamos em uma célula do controle no formulário;

O código abaixo obtém o valor da coluna zero (cells[0]) que representa o ID do cliente e aciona o método fb_ProcuraDados(codigo);

Os dados obtidos irão preencher os controles TextBox do formulário com os valores do cliente selecionado:

 private void dgvCientes_CellClick(object sender, DataGridViewCellEventArgs e)
 {
            int codigo = Convert.ToInt32(dgvCientes.Rows[e.RowIndex].Cells[0].Value);
            Cliente cliente = new Cliente();
            try
            {
                cliente = AcessoFB.fb_ProcuraDados(codigo);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
            preencheDados(cliente);
 }

4-) O código do evento Click do botão Novo a seguir obtém os dados do cliente informados nas caixas de texto e chamada o método fb_InserirDados(cliente) passando as informações do cliente no objeto cliente;

  private void btnNovo_Click(object sender, EventArgs e)
        {
            Cliente cliente = new Cliente();
            cliente.ID = Convert.ToInt32(txtID.Text);
            cliente.Nome = txtNome.Text;
            cliente.Endereco = txtEndereco.Text;
            cliente.Telefone = txtTelefone.Text;
            cliente.Email = txtEmail.Text;

            try
            {
                AcessoFB.fb_InserirDados(cliente);
                preencheGrid();
                MessageBox.Show("Cliente inserido com sucesso !", "Inserir", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
        }

5-) O código do evento Click do botão Limpar abaixo habilita o botão Novo e limpa as caixas de texto do formulário colocando o foco na caixa de texto txtID;

 private void btnLimpar_Click(object sender, EventArgs e)
        {
            btnNovo.Enabled = true;
            foreach (Control myControl in groupBox1.Controls)
            {
                if (myControl as TextBox == null)
                {}
                else
                {
                    ((TextBox)myControl).Text = "";
                }
            }
            txtID.Focus();
        }

6-) No código do evento Click do botão Alterar atribuímos os valores informados nas caixas de texto preenchendo o objeto Cliente e usamos o método fb_AlterarDados();

  private void btnAltera_Click(object sender, EventArgs e)
        {
            Cliente cliente = new Cliente();
            cliente.ID = Convert.ToInt32(txtID.Text);
            cliente.Nome = txtNome.Text;
            cliente.Endereco = txtEndereco.Text;
            cliente.Telefone = txtTelefone.Text;
            cliente.Email = txtEmail.Text;

            try
            {
                AcessoFB.fb_AlterarDados(cliente);
                preencheGrid();
                MessageBox.Show("Cliente alterado com sucesso !", "Alterar", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
        }

7-) No evento Click do botão Excluir obtemos o ID do cliente e usamos o método fb_ExcluirDados();

   private void btnExclui_Click(object sender, EventArgs e)
        {
            int codigo = Convert.ToInt32(txtID.Text);
            try
            {
                AcessoFB.fb_ExcluirDados(codigo);
                preencheGrid();
                MessageBox.Show("Cliente excluído com sucesso !", "Alterar", MessageBoxButtons.OK);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK);
            }
        }

Executando o projeto e clicando no DataGridView temos o seguinte resultado:

Dessa forma usando o banco de dados FireBird, o provedor FireBird .NET e os recursos da ADO .NET criamos uma camada de acesso a dados e implementamos os métodos que permitem realizar as operações CRUD na tabela Clientes.

Pegue a solução completa aqui: CRUD_FireBird.zip

Joã 5:20 Porque o Pai ama ao Filho, e mostra-lhe tudo o que ele mesmo faz; e maiores obras do que estas lhe mostrará, para que vos maravilheis.

Joã 5:21 Pois, assim como o Pai levanta os mortos e lhes dá vida, assim também o Filho dá vida a quem ele quer.

Joã 5:22 Porque o Pai a ninguém julga, mas deu ao Filho todo o julgamento,

Joã 5:23 para que todos honrem o Filho, assim como honram o Pai. Quem não honra o Filho, não honra o Pai que o enviou.

Joã 5:24 Em verdade, em verdade vos digo que quem ouve a minha palavra, e crê naquele que me enviou, tem a vida eterna e não entra em juízo, mas já passou da morte para a vida.

Referências:


José Carlos Macoratti