Socorro - DataGrid que não atualiza !!!!
12/11/2003
0
Putz ! Estou usando o C# Builder para construir uma aplicação mas estou tendo um grande problema com o DataGrid - ele não é atualizado !!!
O que estou fazendo de errado ???
-Evento onLoad do form:
(...)
conexao.Open();
MeuDataAdapter.Fill(MeuDataSet,´MinhaTable´);
MeuDataGrid.DataSource = MeuDataSet;
MeuDataGrid.DataMember = ´MinhaTable´;
conexao.Close();
- Isso faz com que os dados apareçam no DataGrid, beleza, isso esta correto. O problema vem agora:
- Evento OnClick do ´Botão Inserir´:
conexao.Open();
OleDbCommand MeuCommand = new OleDbCommand(´insert into...´,conexao);
MeuCommand.ExecuteNonQuery(); //isso grava o dado inserido
MeuDataAdapter.Update(MeuDataSet,´MinhaTable´);
MeuDataGrid.Update();
MeuDataGrid.Refresh();
=>A instrução SQL de Insert funciona perfeitamente, e o dado é inserido no BD, mas mesmo depois do Update e do Refresh, o dataGrid NÃO MOSTRA o novo registro. Por que ? Pelo amor de Deus, me ajudem pois já não sei mais o que fazer !!!!
O que estou fazendo de errado ???
-Evento onLoad do form:
(...)
conexao.Open();
MeuDataAdapter.Fill(MeuDataSet,´MinhaTable´);
MeuDataGrid.DataSource = MeuDataSet;
MeuDataGrid.DataMember = ´MinhaTable´;
conexao.Close();
- Isso faz com que os dados apareçam no DataGrid, beleza, isso esta correto. O problema vem agora:
- Evento OnClick do ´Botão Inserir´:
conexao.Open();
OleDbCommand MeuCommand = new OleDbCommand(´insert into...´,conexao);
MeuCommand.ExecuteNonQuery(); //isso grava o dado inserido
MeuDataAdapter.Update(MeuDataSet,´MinhaTable´);
MeuDataGrid.Update();
MeuDataGrid.Refresh();
=>A instrução SQL de Insert funciona perfeitamente, e o dado é inserido no BD, mas mesmo depois do Update e do Refresh, o dataGrid NÃO MOSTRA o novo registro. Por que ? Pelo amor de Deus, me ajudem pois já não sei mais o que fazer !!!!
Ibraim
Curtir tópico
+ 0
Responder
Posts
12/11/2003
Labega
Bom,
Nao deu para testar o que eu vou falar, mas de uma checada ai.
Bom DataSet é uma tabela em memória, totalmente isolado do bonco de dados.
o DataAdapter e a ´ponte´ entre o BD e o DataSet.
Vamos la, qnd vc chama o update do adapter, ele envia as mudanças feitas no DataSet para o banco (verifique a propriedade UpdateCommand, ou algo assim), é natural o que ocorre. Ele nao ira novamente no banco e atualizaro DataSet.
Faça o seguinte, adicione um novo registro no DataSet, apos isso chame o Update do Adapter, dai o grid atualiza e o banco tb.
Acho q dara certo.
[]´s
Nao deu para testar o que eu vou falar, mas de uma checada ai.
Bom DataSet é uma tabela em memória, totalmente isolado do bonco de dados.
o DataAdapter e a ´ponte´ entre o BD e o DataSet.
Vamos la, qnd vc chama o update do adapter, ele envia as mudanças feitas no DataSet para o banco (verifique a propriedade UpdateCommand, ou algo assim), é natural o que ocorre. Ele nao ira novamente no banco e atualizaro DataSet.
Faça o seguinte, adicione um novo registro no DataSet, apos isso chame o Update do Adapter, dai o grid atualiza e o banco tb.
Acho q dara certo.
[]´s
Responder
12/11/2003
Ibraim
Beleza, eu entendi a sua idéia, mas não sei como montar o código (eu ainda estou aprendendo). Como ficaria o meu código então ? Vc poderia me dar um exemplo ?
Isso pq, enqto nao acho uma solução ´correta´, o que estou fazendo é dar um DataSet.Clear(); e depois usar o Fill do DataAdapter em cima...
Desde já, valeu pela ajuda cara !
Isso pq, enqto nao acho uma solução ´correta´, o que estou fazendo é dar um DataSet.Clear(); e depois usar o Fill do DataAdapter em cima...
Desde já, valeu pela ajuda cara !
Responder
Clique aqui para fazer login e interagir na Comunidade :)