新手问,关于dbgrid(10分)

  • 主题发起人 主题发起人 smale
  • 开始时间 开始时间
S

smale

Unregistered / Unconfirmed
GUEST, unregistred user!
我向数据库中添加了一条记录(没有用dbnaviggator等控件),但在dbgrid中不能即时显示
这条记录,必须关掉窗口,再重新打开才能显示出来,我用了各种刷新都不起作用,请各位
大虾帮忙!应该怎样刷新才行?
 
我也遇到过这样的问题,没有什么好的解决方法。
好象我是把query close再open才行的。
希望哪位大侠给个解决方法。
 
这样也不行,我试过的!
 
刷新窗口试一下
 
是么,说出来不好意思,我当时有好几个query我是把
datasource的dataset属性改过别的query,close
再改回来,然后open就行的,不过这也许跟你用的控件有关
我当用dbisam就是这样,但是用ado时就没事。不知道为什么。
希望指点。
 
adoquery1.close;
adoquery1.open;
刷新一下就可以了。
 
to pckite
这样也不行啊,你们看看我写的:
adoquery1.Active:=false;
adoquery1.Close;
adoquery1.open;
adoquery1.ExecSQL;
datasource1.DataSet.close;
datasource1.DataSet.open;
adoquery1.Active:=true;
form4.Refresh;
dbgrid1.Update;
dbgrid1.Refresh;
最后也没显示出来!
 
说说你是怎么添加的,用insert tablename values(....) 吗,关闭再打开是下策。
 
我是用adotable1添加的,dbgrid连在adoquery上
 
adoquery1.Active:=false;
adoquery1.Close;
datasource1.DataSet:=adotable1;
datasource1.DataSet:=adoquery1;
adoquery1.open;
adoquery1.ExecSQL;
adoquery1.Active:=true;
好像是这样。
 
》》我是用adotable1添加的,dbgrid连在adoquery上
adotable1和adoquery是两个数据集,你的dbgrid连接到adoquery上,当然adotable1上
的更新不会显示在dbgrid上,你根本就不需要adotable1,直接在adoquery上更新数据就
好了。如果你实在需要两个数据集,那么在更新adotable1后,执行adoquery1.Requery.
便可刷新dbgrid1的显示。

 
to 懒虫007
还是不行,再没有更好的方法了?
 
大家还有没有好的方法,我已经穷途末路了!:(
 
将 Query1 的 Prepared 设置成 True就可以了。
Query1.Prepared :=True;
 
用table添加就把dbgrid连到table上,你用的什么数据库我用access是没有问题吧。
 

同意 懒虫007

我在 Query 中加 , 在 Table 中也可以涮新过来呀, 我记得是。
 
我遇到过这种情况,据分析主要是数据库的更新是需要时间的,处理的办法如下:
1:timer控件来延迟刷新,一般不会超过5秒,当然反复的刷新直到数据找到也行;
2:用共同的adoconnection作为数据源提供者;
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
639
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部