有什么办法可以每插入一条记录,DBGrid就能马上显示出来的? 我用adoquery来插入记录,插入一条记录后,DBGrid没有马上显示出来,有什么办法可以让我每插入一条记录,DBGrid就能马上显示出来的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的DBGrid的数据集用的不是adoquery?你从哪里录入?如果是Edit,你需要刷新DBGrid的数据集 to esu(ESU):我的DBGrid用的数据集是adotable,是用Edit和ComboBox来录入;怎样刷新DBGrid的数据集? 只要是绑定的,post就显示了... to kobi(微笑猫:如果绑定? adotable1.close;adotable1.open;就是刷新了,不过你要是写成这种 adoquery1.ExecSQL; adotable1.Close; adotable1.Open;估计是刷不出来的(我以前碰到过,可能是因为延迟吧)你可以考虑用一个数据集,就不会有这种问题了 用DBGrid绑定的adotable来执行sql 实在不行,把adotable重新open一下,或使用refresh,我没测试. 可以用ADOTable的Apeend方法如:DataSource1.DataSet:=adotable1;DBGrid1.DataSource:=DataSource1;adotable1.Append;adotable1.FieldValues['name']=edit1.text;adotable1.FieldValues['classname']=combobox1.text;adotable1.Post;就可以了。试一试吧。 Table1.Open; Database_IniFile_Name:='happybb.ini'; Database_IniFile:=TiniFile.Create(Database_IniFile_Name); intnum:=Database_IniFile.ReadInteger('配置','总数',0); //DBGrid1.Enabled := false; for i:=1 to intnum do begin sChinese:=Database_IniFile.ReadString(IntToStr(i),'H',''); sEnglish:=Database_IniFile.ReadString(IntToStr(i),'E',''); sAuthor:=Database_IniFile.ReadString(IntToStr(i),'A',''); Table1.InsertRecord([sChinese,sEnglish,sAuthor]); //DBGrid1.Refresh; end;//end for Database_IniFile.Free; Table1.Close; Table1.Open; DBGrid1.DataSource := DataSource1; DBGrid1.Refresh;这是一个从ini读数据写入数据库的,一开始dbgrid添加了数据后只能显示一条记录后来在添完记录后close table 然后open table and refresh dbgrid就可以了,不过不知谁能不用这方法也能一下显示所有数据学习交流一下吧哥们!!!!!!!!up 在MDI系统设计中,用子窗体的关闭按钮如何关闭子窗体? 怎样隐藏listview控件的中间某一列? 谁能给个进销存的方案,学习用? 高手快来告诉我在Delphi里的SQL怎么取字符串长度的函数,告诉我啊,急! 急救~~~怎么做这个查询?? 那位仁兄知道TListView里的一个事件在哪里写? 函数非正常退出?像c的exit 一道竞赛题. 如何调用Delphi调用拨号网络 关于active控件 不是吧,我就几天没来,信誉自己下降了 shellexecute的问题
我的DBGrid用的数据集是adotable,是用Edit和ComboBox来录入;
怎样刷新DBGrid的数据集?
如果绑定?
adotable1.open;
就是刷新了,不过你要是写成这种
adoquery1.ExecSQL;
adotable1.Close;
adotable1.Open;
估计是刷不出来的(我以前碰到过,可能是因为延迟吧)你可以考虑用一个数据集,就不会有这种问题了
如:
DataSource1.DataSet:=adotable1;
DBGrid1.DataSource:=DataSource1;
adotable1.Append;
adotable1.FieldValues['name']=edit1.text;
adotable1.FieldValues['classname']=combobox1.text;
adotable1.Post;
就可以了。试一试吧。
Database_IniFile_Name:='happybb.ini';
Database_IniFile:=TiniFile.Create(Database_IniFile_Name); intnum:=Database_IniFile.ReadInteger('配置','总数',0);
//DBGrid1.Enabled := false;
for i:=1 to intnum do
begin
sChinese:=Database_IniFile.ReadString(IntToStr(i),'H','');
sEnglish:=Database_IniFile.ReadString(IntToStr(i),'E','');
sAuthor:=Database_IniFile.ReadString(IntToStr(i),'A','');
Table1.InsertRecord([sChinese,sEnglish,sAuthor]);
//DBGrid1.Refresh;
end;//end for
Database_IniFile.Free;
Table1.Close;
Table1.Open;
DBGrid1.DataSource := DataSource1;
DBGrid1.Refresh;
这是一个从ini读数据写入数据库的,一开始dbgrid添加了数据后只能显示一条记录
后来在添完记录后close table 然后open table and refresh dbgrid就可以了,
不过不知谁能不用这方法也能一下显示所有数据
学习交流一下吧哥们!!!!!!!!
up