terça-feira, 3 de janeiro de 2012

Começar a usar o .Net Entity Framework - 3


Este artigo ilustra a utilização do ADO.Net Entity Framework na criação, actualização e eliminação de registos de dados.

Este artigo vem na sequência de:

onde vimos como criar um modelo de dados (ADO.Net Entity Data Model) a partir de uma base de dados já existente, e como usar esse modelo, num pequeno exemplo ilustrativo, para consulta da base de dados e preenchimento de uma comboBox.

Pegando no mesmo exemplo, acrescentámos à Form1 mais uma label, para visualizar o ID de cada registo, e uma caixa de texto, para podermos alterar o nome do país ou criar um novo país.



Foram também acrescentados botões para Criar Novo, Alterar e Apagar um país da tabela, e um botão Cancelar, que fecha a janela da aplicação.

Para começar, acrescentámos no handler que trata da selecção de uma nova linha da comboBox o código necessário para preencher a label (label1) com o ID do país, e a caixa de texto (paisTextBox) com o nome do país. Isto permite ao utilizador editar o nome actual de um país, para o poder alterar, ou inserir um novo nome, para criar um novo país na tabela.

        private void paisesBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            label1.Text = paisesBox1.SelectedValue.ToString();
            //paisTextBox.Text = paisesBox1.SelectedText;
            paisAtual = (Pais)paisesBox1.SelectedItem;
            paisTextBox.Text = paisAtual.nome;
        }

Alterar Descrição de um País:

Criamos como método handler do click do botão “Alterar” o seguinte:

private void UpdateBut_Click(object sender, EventArgs e)
{
   paisAtual.nome = paisTextBox.Text;
   int rowsAffected = dbContext.SaveChanges();
   MessageBox.Show("Efetuadas " + rowsAffected.ToString() + " alterações à tabela.");
}

Criar um novo País:

Criamos como método handler do click do botão “Criar Novo” o seguinte:

private void CreateBut_Click(object sender, EventArgs e)
{
    Pais novoPais = new Pais();
    novoPais.nome = paisTextBox.Text;

    dbContext.AddToPaises(novoPais);
    int rowsAffected = dbContext.SaveChanges();
    paisAtual = novoPais;

    MessageBox.Show("Criado(s) " + rowsAffected.ToString() + " novo registo na tabela.");

    dbContext = new simpleEntityFrameworkApp.bdExemploEntities();

    paisesBox1.DataSource = dbContext.Paises;
    paisesBox1.DisplayMember = "nome";

    paisesBox1.Invalidate();
}

Apagar um País:

Criamos como método handler do click do botão “Apagar” o seguinte:

private void delButton_Click(object sender, EventArgs e)
{
    dbContext.DeleteObject(paisAtual);
    int rowsAffected = dbContext.SaveChanges();
    MessageBox.Show("Apagados " + rowsAffected.ToString() + " registos da tabela.");

    label1.Text = paisesBox1.SelectedValue.ToString();
    paisAtual = (Pais)paisesBox1.SelectedItem;
    paisTextBox.Text = paisAtual.nome;
}

Por fim, o handler do botão “Cancelar” apenas liberta o contexto de mapeamento com a base de dados e fecha o form.
        private void Cancelbotao_Click(object sender, EventArgs e)
        {
            dbContext.Dispose();
            this.Close();
        }

Outros artigos relacionados:
    - ADO.Net Entity Framework

Mais uma vez, quem estiver interessado em obter o código com o exemplo, por favor peça-o num comentário a este artigo.

Sem comentários:

Enviar um comentário