请问当想数据库插入新记录的时候如何使DBGrid 立刻更新显示刚刚添加的记录?

haifeng_su 2004-01-18 04:17:53
我用的是2个TQuery1,2
TQuery1 负责insert,
TQuery2 负责显示数据库表,在主窗口上面添加一个DbGrid1,然后在添加几个edit用来储存数据,当点击按钮“Insert”后,把新记录添加到数据库里面,现在我想实现当点击Insert按钮后下面的DBGrid也立刻更新显示,请问如何做。

×××××××××××添加部分××××××××××
CustomerData->Query1->SQL->Clear();
CustomerData->Query1->SQL->Add("insert into test (name,age,comment) Values(:Name,:Age,:Comment)");
CustomerData->Query1->ParamByName("Name")->AsString=Edit1->Text;
CustomerData->Query1->ParamByName("Age")->AsInteger=StrToInt(Edit2->Text);
CustomerData->Query1->ParamByName("Comment")->AsString=Memo1->Text;

CustomerData->Query1->ExecSQL();

现在我想更新显示,我应该在后面添加什么呢?我添加了
DBGrid1->Refresh();
或者Repaint();都不型啊。请问如何做呢? DBGrid是与DataSource2联系的,DataSource2又与Query2联系的,Query2的sql string是:select * from test;

但是只能显示刚开始运行的记录,添加后不能更新显示,请问如何改啊??
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wupangzi 2004-01-19
  • 打赏
  • 举报
回复
添加的和显示的要同一个数据集!你的DBGrid1的数据源是指向那个数据集的!
yhec 2004-01-19
  • 打赏
  • 举报
回复
用SQL语句增加记录就是要刷新才能看动,为何不这样呢:
Query1->Append();
Query1->FieldByName("字段")->AsString="asdsadsa";
Query1->Post();
这样就能直接看到了!

foxphoenix 2004-01-19
  • 打赏
  • 举报
回复
因为你的DBgrid显示的是最初刚打开时的数据,而在你插入之后,没有刷新,只需在你的添加代码的之后加上一段刷新的代码,也就是说,在执行完插入之后,立即刷新一下,让Query2重新从数据库中select最新的数据。
×××××××××××添加部分××××××××××
CustomerData->Query1->SQL->Clear();
CustomerData->Query1->SQL->Add("insert into test (name,age,comment) Values(:Name,:Age,:Comment)");
CustomerData->Query1->ParamByName("Name")->AsString=Edit1->Text;
CustomerData->Query1->ParamByName("Age")->AsInteger=StrToInt(Edit2->Text);
CustomerData->Query1->ParamByName("Comment")->AsString=Memo1->Text;

CustomerData->Query1->ExecSQL();
/* 加上下面一段代码即可*/
CustomerData->Query2->Close();
CustomerData->Query2->SQL->Clear();
CustomerData->Query2->SQL->Add("select * from text");
CustomerData->Query2->Open();
Edit1->Text="";
Edit2->Text="";
Memo1->Text="";
ShowMessage("添加成功");

fatwave 2004-01-18
  • 打赏
  • 举报
回复
断开,再重新连接!

1,178

社区成员

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

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