涉及到的控件和属性如下:
ADOTable1
ADOQuery1
DataSource1.DataSet:=ADOQuery1
DbGrid1.DataSource:=DataSource1
在添加数据的时候,我使用的是ADOTable1控件,然后由ADOQuery1更新,此时DBGrid1中显示了添加的数据,
但是当修改的时候还是使用ADOTable1来做,却不能保证修改的记录就是当前DBGrid1中被选中的记录
在不改变各控件属性的情况下,如何实现修改数据时的正确性。

解决方案 »

  1.   

    我很奇怪?为什么要分别用ADOTABLE,ADOQUERY来分别添加、修改数据呢?
    就如你所说的情况,在ADOQUERY修改完成以后,要刷新ADOTABLE中的内容,建议在ADOQUERY的AFTERPOST事件中写:ADOTABLE1.CLOSE;
    ADOTABLE1.OPEN;
      

  2.   

    对压,其实单独用adoquery就可以拉压.
      

  3.   

    这样做显然麻烦了,要刷新显示当前数据库的最新数据,可以使用
    TAdoQuery1.Requery;
    就行了,这样就没有你的问题了
      

  4.   

    用 ADOTable / ADOQuery 一种可以了 ,这样数据集始终是一个的,不会混乱
      

  5.   

    用之前先open
    给你飞刀一把