我在程序中使用了ADO控件与ACCESS相连,另外采用了DBGRID来显示数据,但是如果我没有在DBGRID中直接编辑(主要是插入和删除)数据,而是使用了INSERT或DELETE的SQL语句去操作数据库,此时虽然在后台数据库中数据已经发生了变化,但是在DBGRID中显示的数据还是没有更新,我曾经使用了很多诸如UPDATE、REFREASH等过程但是没有效果,请高手赐教!

解决方案 »

  1.   

    ADODataSet.requery;

    ADODataSet.close;
    ADODataSet.open;
      

  2.   

    ADOTABLE.close;
    ADOTABLE.Open;Query.Active:=True;
          ...
          Query.Close;
      

  3.   

    除了CLOSE和OPEN以外,还有什么好的方法吗?
      

  4.   

    你不要用INSERT或DELETE的SQL语句去操作数据库
    而是使用ADO控件的方法来实现:
    ADODataSet.Append;
    ADODataSet.Post;ADODataSet.Delete;如果你用SQL语句去操作数据库
    则必须重新刷新数据集的数据
    ADODataSet.Requery;

    ADODataSet.Close;
    ADODataSet.Open;
      

  5.   

    修改sql语句的时候,应该已经关闭数据集,再打开数据集,或执行excsql!
      

  6.   

    使用OPEN和CLOSE方法可以解决问题,但是它们会引起数据感知控件中的数据在屏幕上产生闪烁,这个问题如何解决呢,请赐教!