Array
(
)

Socorro - DataGrid que não atualiza !!!!

Ibraim
   - 12 nov 2003

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();

Labega
   - 12 nov 2003

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


Ibraim
   - 12 nov 2003

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 !