我是一个菜鸟,最近在做数据输入时,遇到一个很奇怪的问题:我用的控件是:一个DBgrid,一个Ttable,一个Tdatasource,5个Tbutton,分别是“增加”,“删除”“保存”“刷新”和“退出”按钮。问题的表现:当用户在DBGrid里面录入数据时,录入完毕以后,用户不点“保存”按钮,而是用鼠标点一下上一行的内容,这时,奇怪的现象出现了:DBGrid里面的数据马上双倍显示(未点鼠标前只有两行数据,但是点了鼠标以后DBGrid里面就出现了四条数据),但是当点击“刷新”按钮时,DBGrid里面的显示就恢复正常!这是什么原因呢?怎么处理才不会出现这种情况?

解决方案 »

  1.   

    在dbgrid中增加记录不太好,只要鼠标随便点一下就自动存盘了,最好用不跟数据库绑定的控件,如TListView,或单独做个添加窗口。
      

  2.   

    有主键啊,不过,主键的visible被设为false去了,有影响吗》
      

  3.   

    主键的visible被设为false,应该没有影响吧。你增加、删除、修改记录用dbgrid等东东试试,看行不行!
      

  4.   

    http://expert.csdn.net/Expert/topic/2270/2270627.xml?temp=.8119623
      

  5.   

    这不奇怪,这是dbgrid的一项功能,它会默认为你是在复制数据到下一行。
    dbgrid里可以进行很多操作,比如上移下移就是默认保存本行数据,按insert是插入一条新数据,按Esc是取消本次输入。你多试试看,是否如此