现在遇到一个TDBGrid数据刷新的问题:
用TDBGrid控件显示从数据库中查询出来的数据,然后往数据库中插入一条,现在就是想插入完数据后,TDBGrid控件中显示的数据为最新数据。试过在插入操作之后调用TDBGrid的Refresh方法,但没效果。哪位能指点下,谢谢

解决方案 »

  1.   

    重新让adoquery执行SQL刷新语句 select *  from  yourtable
      

  2.   

    没用哦
    我是TDBGrid绑定DataSource的,自动查出数据,没用到adoquery,用什么别的办法吗?
      

  3.   

    那你的DataSource绑定哪个就叫哪个刷新即可
      

  4.   

    把你插入数据的那一段拿出来看看,一般在哪插入数据,就在哪刷新,dbgrid肯定会有变化的
      

  5.   

    代码如下:
    procedure TForm10.addStaffBtnClick(Sender: TObject);
    var
       ADOQuery1: TADOQuery;
       strSQL: string;
    begin
      strSQL := 'select * from staff';
      ADOQuery1 := TADOQuery.Create(self);
      ADOQuery1.Connection := ADOConnection1;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add(strSQL);
      ADOQuery1.Open;
      ADOQuery1.First;
      if (Edit1.Text = ADOQuery1.FieldByName('id').AsString) then
      begin
         showMessage('There is a same ID');
         end
      else begin
         ADOQuery1.Append;
         ADOQuery1.FieldByName('id').AsString := Edit1.Text;
         ADOQuery1.FieldByName('name').AsString := Edit2.Text;
         ADOQuery1.Post;
         ADOQuery1.Next;
      end;
      ADOTable1.Refresh;
      Edit1.Text := '';
      Edit2.Text := '';
    end;
      

  6.   

    ADOTable1.Refresh;  改成ADOQuery1.Refresh;
      

  7.   

    你的dbgrid和adoquery1是连接的同一个datasource吗?
      

  8.   

    adoquery1没用设置数据源啊,就设置了它的数据库连接,其他的没有设置了
      

  9.   

    问题得到解决
    把TDBGrid绑定的table关闭再重新打开就可以,谢谢各位!!
      

  10.   

    补充下,应该是把TDBGrid绑定的dateSet关闭重新打开就可以了