none
Atualizando banco de dados durante a execução de aplicativo c# RRS feed

  • Pergunta

  • Olá

    Estou desenvolvendo um aplicativo em c# que atualiza, deleta, e exibi uma tabela de uma banco de dados. O meu problema é o seguinte:

    Se durante a execução do programa, eu excluir um registro, se eu solicitar para exibir o BD novamente ele continua com os mesmos registros que foram excluidos. Se eu encerrar o programa e inicia-lo novamente ai sim o BD é mostrado corretamente. (ou seja, o banco de dados é atualizado mas no programa não)

    Há algum método/classe para atualizar o banco de dados depois de eu fazer uma ação (adicionar, excluir)?

     

    Obrigado

    sexta-feira, 11 de março de 2011 22:13

Respostas

  • Aqui voce nao esta a fazer actualizacao da tau datagridview apenas esta a apagar o registo na tabela. E por isso que nao esta a actualizar.

    public void excluirBD(int codigo){

    OleDbCommand comando = new OleDbCommand("DELETE * FROM Cliente WHERE Código = @Codigo", conexao);//conexao contem a string de conexao com o BD.

    comando.Parameters.AddWithValue("@Codigo", codigo);

    conexao.Open();

    comando.ExecuteNonQuery();

    conexao.Close();

    datagridview.Datasource = dataset.table[0];   aqui tens de colocar o codigo pra fazer refresh na sua datagridview, poderia ser assim, cahamar denovo a funcao que enche a datagridview aqui

    }

     


    Just Be Humble Malange!
    sexta-feira, 11 de março de 2011 22:54
  • Aqui voce nao esta a fazer actualizacao da tau datagridview apenas esta a apagar o registo na tabela. E por isso que nao esta a actualizar.

     

    public void excluirBD(int codigo){

    OleDbCommand comando = new OleDbCommand("DELETE * FROM Cliente WHERE Código = @Codigo", conexao);//conexao contem a string de conexao com o BD.

    comando.Parameters.AddWithValue("@Codigo", codigo);

    conexao.Open();

    comando.ExecuteNonQuery();

    conexao.Close();

    datagridview.Datasource = dataset.table[0];   aqui tens de colocar o codigo pra fazer refresh na sua datagridview, poderia ser assim, cahamar denovo a funcao que enche a datagridview aqui

    }

     

     


    Just Be Humble Malange!

    Se da forma que o Malange colocou não funcionar, talvez seja porque o DataTable esteja carregado em memória e com isso não atualizará o source do datagrid, então é necessário realizar a consulta novamente para atualizar o datatable e ai então atualizar o datagrid.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    sábado, 12 de março de 2011 04:01

Todas as Respostas

  • Olá

    Estou desenvolvendo um aplicativo em c# que atualiza, deleta, e exibi uma tabela de uma banco de dados. O meu problema é o seguinte:

    Se durante a execução do programa, eu excluir um registro, se eu solicitar para exibir o BD novamente ele continua com os mesmos registros que foram excluidos. Se eu encerrar o programa e inicia-lo novamente ai sim o BD é mostrado corretamente. (ou seja, o banco de dados é atualizado mas no programa não)

    Há algum método/classe para atualizar o banco de dados depois de eu fazer uma ação (adicionar, excluir)?

     

    Obrigado

    qual e a base de dados que estas a usar?

    Se voce usar sql server entao a actualizao e automatica se voce usar access o problema esta ai. 


    Just Be Humble Malange!
    sexta-feira, 11 de março de 2011 22:36
  • Base de dados access
    sexta-feira, 11 de março de 2011 22:39
  • Base de dados access

    Podes mostrar o codigo de como esta a fazer para apagar?

     


    Just Be Humble Malange!
    sexta-feira, 11 de março de 2011 22:41
  • Ok... vou simplificar o código:

     

    public void excluirBD(int codigo){

    OleDbCommand comando = new OleDbCommand("DELETE * FROM Cliente WHERE Código = @Codigo", conexao); //conexao contem a string de conexao com o BD.

    comando.Parameters.AddWithValue("@Codigo", codigo);

    conexao.Open();

    comando.ExecuteNonQuery();

    conexao.Close();

    }

    Eu tenho uma dataGridView que mostra a tabela Cliente. O problema é que ela só se atualiza quando reinicio o aplicativo.

     

    Obrigado.

    sexta-feira, 11 de março de 2011 22:49
  • Aqui voce nao esta a fazer actualizacao da tau datagridview apenas esta a apagar o registo na tabela. E por isso que nao esta a actualizar.

    public void excluirBD(int codigo){

    OleDbCommand comando = new OleDbCommand("DELETE * FROM Cliente WHERE Código = @Codigo", conexao);//conexao contem a string de conexao com o BD.

    comando.Parameters.AddWithValue("@Codigo", codigo);

    conexao.Open();

    comando.ExecuteNonQuery();

    conexao.Close();

    datagridview.Datasource = dataset.table[0];   aqui tens de colocar o codigo pra fazer refresh na sua datagridview, poderia ser assim, cahamar denovo a funcao que enche a datagridview aqui

    }

     


    Just Be Humble Malange!
    sexta-feira, 11 de março de 2011 22:54
  • Aqui voce nao esta a fazer actualizacao da tau datagridview apenas esta a apagar o registo na tabela. E por isso que nao esta a actualizar.

     

    public void excluirBD(int codigo){

    OleDbCommand comando = new OleDbCommand("DELETE * FROM Cliente WHERE Código = @Codigo", conexao);//conexao contem a string de conexao com o BD.

    comando.Parameters.AddWithValue("@Codigo", codigo);

    conexao.Open();

    comando.ExecuteNonQuery();

    conexao.Close();

    datagridview.Datasource = dataset.table[0];   aqui tens de colocar o codigo pra fazer refresh na sua datagridview, poderia ser assim, cahamar denovo a funcao que enche a datagridview aqui

    }

     

     


    Just Be Humble Malange!

    Se da forma que o Malange colocou não funcionar, talvez seja porque o DataTable esteja carregado em memória e com isso não atualizará o source do datagrid, então é necessário realizar a consulta novamente para atualizar o datatable e ai então atualizar o datagrid.

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    sábado, 12 de março de 2011 04:01