Usuário com melhor resposta
Atualizando banco de dados durante a execução de aplicativo c#

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
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!- Sugerido como Resposta Levi Domingos sexta-feira, 11 de março de 2011 23:08
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 13 de maio de 2011 18:21
-
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á. ***- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 13 de maio de 2011 18:21
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! -
-
-
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.
-
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!- Sugerido como Resposta Levi Domingos sexta-feira, 11 de março de 2011 23:08
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 13 de maio de 2011 18:21
-
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á. ***- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 13 de maio de 2011 18:21