删除后,DBGrid控件上依然显示所要删除的数据,请问怎么更新数据显示(50分)

  • 主题发起人 主题发起人 thtx5
  • 开始时间 开始时间
T

thtx5

Unregistered / Unconfirmed
GUEST, unregistred user!
删除后,DBGrid控件上依然显示所要删除的数据,请问怎么更新数据显示
void __fastcall TForm2::DelGzl(TObject *Sender)
{
String a;
a="delete * from GZLK where QF='L' and GZLDM='";
a+=DBGrid1->Fields[0]->AsString;
a+="'";
ADODataSet1->Delete();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(a);
ADOQuery1->ExecSQL();
ADOQuery1->Close();
Form2->Dj();
}
 
ADODataSet1->Delete();后加
ADODataSet1->post;
 
你查询出来的数据在query的数据集里面,同时映射到到DBGRID里面。
你删除的只是的只是数据库中的记录,而你看到的记录是删除之前已经查询出来的,
当然没有被删除。所以你要在删除语句执行之后更新query的记录。
你可以使用query的refresh方法,如因为数据库的原有这个方法不可用的话,你就
先用query的close方法,然后再用它的open方法,由于query的sql语句并没有改变,
所以这样操作后的数据是更新后的数据了
 
楼上的说得有道理。你把和DBGRID相关连的ADO控件关一下,再打开就可以了。
假如你用ADOTable1和DBGRID相连。
ADOTable1->Close();
ADOTable1->Open();
 
你的 dataset query 和 grid 到底是什么关系?
好象比较混乱!
 
在这个时候需要刷新一下 例如: TDataSet.close ;
TDateSet.open ;
这样相当于刷新了一下!试一下,行不行!
 
谢谢各位,可能ADO有解决不了的问题,所以这里有这么多关于它的问题。均分分数吧
 
DataSet->DataSource<-DataControl
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部