我用的是DELPHI7.0中BDE,请问在DBGrid中利用TQuery和DataSource删除一条记录后,怎样才能让刷新后的数据再次显示在DBGrid中?我每次删除成功后,DBGrid中都变成空的了.望赐教!谢谢.

解决方案 »

  1.   

    执行删除前query1.disablecontrols,执行后再query1.enablecontrols
      

  2.   

    我试了,不行啊.这是程序,你看看应该加到哪儿?
    begin
        trainno:=Edit1.Text;  //获取订单号
        query1.Close;
        query1.SQL.clear;
        //修改订单数据库
        query1.sql.Add('select * from train where trainNo=:trainNo and StaDate=:StaDate');
        query1.ParamByName('trainNo').Asstring:=trainno;
        query1.ParamByName('StaDate').AsDatetime:=strtodate(edit2.Text);
        query1.Open;
        if query1.RecNo=0 then
        begin
           application.MessageBox('此车次不存在! ','提示信息',mb_ok)
        end
        else begin
        query1.Close;
        query1.SQL.clear;
        query1.sql.Add('delete from train where trainNo=:trainNo and StaDate=:StaDate');    //删除订单
        query1.ParamByName('trainNo').Asstring:=trainno;
        query1.ParamByName('StaDate').Asdatetime:=strtodate(edit2.Text);
        query1.ExecSQL;
        query1.close;
        application.MessageBox('成功删除! ','提示信息',mb_ok)    end;
        edit1.Text:='';
        edit2.Text:='';
    end
      

  3.   

    query1.close;//删除后query1被关闭,dbgride肯定为空;
    query1.close改为query1.refresh;
      

  4.   

    2个Query,一个下载结果集,一个刷新!
      

  5.   

    query1.disablecontrols加在query1.open前,后一个家在edit1。txt=‘’前
      

  6.   

    liangpei2008(笑青天)
    2个Query,一个下载结果集,一个刷新!楼上说的可以
    用query1来加载数据,一直打开,用query2来执行删除操作。
    删除后刷新query1就可以了。
      

  7.   

    关联DBGrid的DataSet的CacheUpdates属性设置成True。query1.sql.Add('delete from train where trainNo=:trainNo and StaDate=:StaDate');    //删除订单
        query1.ParamByName('trainNo').Asstring:=trainno;
        query1.ParamByName('StaDate').Asdatetime:=strtodate(edit2.Text);
        query1.ExecSQL;
        query1.close;  //这句是多余的加上下面几句
    if DBGrid1.DataSource.DataSet.locate('trainNo;StaDate',VarArrayOf([trainno,StrToDateTime(Edit2.Text)]),[]) then
      DBGrid1.DataSource.DataSet.Delete;
      

  8.   

    删除完成后再用Query打开一次就OK了。