我在ADOquery1+DBGRID1中用ADOquery1.FIELDbyname('c_amount').VISIBLE:=FALSE;来隐藏一列,正确但是我现在要恢复显示该列用ADOquery1.FIELDbyname('c_amount').VISIBLE:=true;  adoquery1.refresh;结果有错误,提示“缺少更新或刷新的键列”问两个(1)为什么?如何解决?
(2)如果我双击dbgrid1加上各字段,结果隐藏一列不起作用,恢复一列还提示“缺少更新或刷新的键列”,如何解决?

解决方案 »

  1.   

    我没试过,但试试先关闭QUERY,再打开。
      

  2.   

    1. 
    隐藏列,和显示列
    dbgrid1.columns[1].visible:=false;
    dbgrid1.column[1].visible:=True;2
    adoquery1.refresh 
    ,提示“缺少更新或刷新的键列”问两个(1)为什么?如何解决?
    这个问题是ado本身的问题, 解决方法,你 在表里建立一个主键字段就行了
      

  3.   

    这里的VISIBLE=FALSE相当于不再查询了,close之后,重新开始查询也许,ok.
      

  4.   

    1. 
    隐藏列,和显示列
    dbgrid1.columns[1].visible:=false;
    dbgrid1.column[1].visible:=True;
    提示“缺少更新或刷新的键列”的问题
    先关闭QUERY,再打开。
      

  5.   

    先将ADOquery1关闭,最后再打开。