用ADO写一个人事管理系统,写完添加功能后,写了一个确认添加的按钮,就一句
datamodule1.ADODataSet1.Refresh;结果按此钮后就出现上面的提示,不知为何

解决方案 »

  1.   

    这个好办该为datamodule1.ADODataSet1.requery
    万事大吉了!呵呵
      

  2.   

    我也碰见到这种错误提示,我认为是你的开发平台有一些小bug 如delphi5 就不行
    我把我的代码原样不动的拷到delphi7平台上完全可以运行,可以加记录,也不出错,一切都ok了
      

  3.   

    用close 和 open刷新就OK了
      

  4.   

    呵呵,大家所说的主键,刷新啦之类的我都试过,可我最终搞定它的是 把我写的代码拷到delphi 6里面,在操作一切都ok了
      

  5.   

    同意kekebear(796020),我用delphi7也出现过,是因为主键没有设置,dbms没法确定记录唯一键值。
      

  6.   

    我知道,如果数据库设计没问题,都有主键,那就是ADODataSet1的SQL语句有问题,比如有表A和B,SQL语句SELECT后面有A的主键而没有B的,那么更新A没问题,更新B就出现上面的错误提示,所以只要把B的主键字段放进SELECT里就可以了,如select a.id,b.id,a.name,b.sex from a,b where a.addr=b.addr,其中id是各自的主键
      

  7.   

    谢谢大家献计献策,我刚开始是没有定义主键,结果导致以上错误,但是如果不定义主键,则用 ffengabc(G拯救明天) 的方法变refresh为requery即可