Delphi dbgrid 动态更新

rui2012 2010-09-07 05:00:00
看了同样的问题,我就是解决不了,我有几个Form 我在前一个form中添加或修改了数据库,但是当我打开后面带有dbgrid(grid=狗X的?)的form中的数据还是修改之前的,我要让它更新还只有重新打开程序才可以,怎么让我的后面几个form中的DBgrid中数据,在前一个form更改后就可以立即更新。(不用重新再打开程序)!菜鸟弄了好久也解决不了,杯具啊~ 求好心人指教!感谢!
...全文
172 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rui2012 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ylcn2010 的回复:]


[/Quote]
谢谢~灰常感谢!
YLCN2010 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 rui2012 的回复:]
procedure TForm3.FormShow(Sender: TObject);
begin
adotable1.Close;
adotable1.Open;
adotable1.refresh;
dbgrid1.refresh;
end;
这是我结合上面的答案做的,谢谢大家,可以了!!
顺便弱弱的问下:如何在不同的form中的dbgrid指向同一个数据集呢?……
[/Quote]
新建个DataModule窗体,然后将数据集放在这个窗体中,让其它窗体的DataSet都指向这个窗体的数据集。
(前提是把这个窗体添加到其它窗体的Uses中)
rui2012 2010-09-07
  • 打赏
  • 举报
回复
procedure TForm3.FormShow(Sender: TObject);
begin
adotable1.Close;
adotable1.Open;
adotable1.refresh;
dbgrid1.refresh;
end;
这是我结合上面的答案做的,谢谢大家,可以了!!
顺便弱弱的问下:如何在不同的form中的dbgrid指向同一个数据集呢?
rui2012 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lengyuehui 的回复:]
几个Form公用一个数据集就可以!
[/Quote]
我怎么公用呢? 请教不同的form 如何公用?
a5918886 2010-09-07
  • 打赏
  • 举报
回复
当你在添加 修改的程序中加入
数据集控件.ACTION=FALSE;
数据集控件.ACTION=TRUE;
不就行了!
bdmh 2010-09-07
  • 打赏
  • 举报
回复
两个窗体上的adotable,datasource都是独立的吧,没有指向同一个adotable,你应该在窗体显示事件中,重新load当前窗体的adotable数据
rui2012 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bdmh 的回复:]
你这几个grid的连接的数据集不是指向同一个吧,比如grid1是adoquery1,grid2是adoquery2,如果adoquery1更新了,但是adoquery2并未更新,数据还是老的
[/Quote]
我没有用那个adoquery,我还在学,用的datasource,adotable 另一个form用的是datasource ,adotaset
YLCN2010 2010-09-07
  • 打赏
  • 举报
回复
使用观察者模式,当一个窗体要求刷新的时候,通知其它窗体要跟着一起刷新数据集。
bdmh 2010-09-07
  • 打赏
  • 举报
回复
你这几个grid的连接的数据集不是指向同一个吧,比如grid1是adoquery1,grid2是adoquery2,如果adoquery1更新了,但是adoquery2并未更新,数据还是老的
酣酣 2010-09-07
  • 打赏
  • 举报
回复
几个Form公用一个数据集就可以!
duxing00 2010-09-07
  • 打赏
  • 举报
回复
你让后面的几个form 中的数据集(Adoquery)重新close,open下,然后DBGrid刷新下。
ADOQuery1.Refresh;
DBGrid1.Refresh
试试~

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧