关于delphi中的dbgridg更新记录后不刷新的问题 20

varid:string;beginifapplication.MessageBox('确定要修改吗?','警告',MB_YESNO)=idnothenexit;begi... var id:string;
begin
if application.MessageBox('确定要修改吗?','警告',MB_YESNO)=idno then exit;
begin
try
with adoquery1 do
begin
id:=ADOQuery1.FieldByName('id').AsString;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('update jsj set id = :id,姓名 =:姓名,年龄=:年龄 where id ='+id);

adoquery1.Parameters.FindParam('id').Value:=edit1.Text;
adoquery1.Parameters.FindParam('姓名').Value:=edit2.Text;
adoquery1.Parameters.FindParam('年龄').Value:=edit3.Text;
ExecSQL;
end;
messagebox(handle,'修改成功','提醒',MB_OK);
except
messagebox(handle,'数据异常','提醒',MB_OK);
end;
end;
end;

可以更新记录,但更新后,不能即时刷新 dbgrid,出现一个空白的dbgrid,后来我用以下代码进行重新打开
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from jsj');
ADOQuery1.Open;
但是我看人家的代码不用像我这样重新打开一下记录集的,没有我上面第二这段代码照样可以,请问是怎么做到的
展开
 我来答
liguangwen91
2017-02-13 · TA获得超过131个赞
知道小有建树答主
回答量:239
采纳率:75%
帮助的人:53.6万
展开全部
你的adoquery1执行的是sql语句修改了数据库的数据.

而你的grid关联的数据集数据并没有更新。
你用ADOQuery1去执行更新

在做ADOQuery2区关联grid,执行ADOQuery1后ADOQuery2.Refresh
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式