ADODataSet1中添加新记录,但DBGrid1中没有显示出来,我使用刷新,放一个时钟,过程是这样写的adodataset1.Close;
adodataset1.Open;但是老是闪烁

解决方案 »

  1.   

    直接refresh不行吗?放什么时钟啊
      

  2.   

    建议使用多种方法试试,CLOSE,OPEN,REFRESH,会可以的
      

  3.   

    close
    open
    就应该可以了.
      

  4.   

    闪烁是正常的,最好在TIMER中加入判断是否有新记录才刷新!
      

  5.   

    怎么判断ADODATASET1已经变化呢
      

  6.   

    若是你的dbgrid连接到了那个dataset应该不用刷新就能看到效果了
    莫非它们不是同一个数据源?
      

  7.   

    是同一个数据源,我的想法跟楼上也一样,可他还是不刷新,我只能用refresh
      

  8.   

    你是不是这样做的:
    将DBGRID连接到数据源,然后就修改数据源的数据?
    这样当然会闪了,你这样做好了:
    连到数据源以后,点DBGRID的右键,选COLUMD EDIT再点ADD加一个字段,
    在属性编辑器里的FILEDS中选中要显示的字段就可以了,其它类推。
      

  9.   

    好像这样会好点
    adodataset1.DisableControls;
    try
      //加上Book,可以保持数据刷新前后当前纪录一致
      adodataset1.Close;
      adodataset1.Open;
    finally
      adodataset1.EnableControls;
    end
      

  10.   

    我的处理办法是,添加记录后Post(ApplyUpdates,三层的话),再从新读取,Close,Open,三层的话,服务器和客户端都要CloseOpen,没别的办法。
    Timer不好,数据库服务器压力太大,老是有不必要刷新