我用ADOQuery连接了一个access数据库,程序中通过DBGrid显示ADOQuery动态查询出得值,却怎么也显示不出。怎么调试也不行,最后用listview却能显示出来。
请问这到底是怎么回事?
难道是组件出错了?

解决方案 »

  1.   

    校对一下:
    datasource1.dataset=adouqery
    dbgrid.datasource=datasource1
      

  2.   

    dbgrid要通过datasource控件才能显示adoquery的内容。
      

  3.   

    我用静态连接测试,直接在adoquery的sql属性里输入sql语句,在把active置为true,能看到结果。我把语句copy到代码里,运行就看不到了
      

  4.   

    检查一下dbgrid.defaultdrawing,应该为true
      

  5.   

    这样设置dbgrid列dbgrid1.Columns[0].FieldName:='书号';对吗?是先设置列还是先open
      

  6.   

    设计阶段在dbgrid上双击,添加Columns设置FieldName值,为啥要在代码里写?
    检查字段名是不是正确,都设置好了再OPEN。
      

  7.   

    是不是ADOQuery的Active没有设置为true呀,是否改变了displayname?
      

  8.   

    sql语句是在代码里写的,所以设计期间不能设置fieldname的值
    我用静态连接,直接在aqoquery的sql属性里直接输入sql语句,能够显示,可是在代码里写,就显示不了了
      

  9.   

    displayname是什么?
    是谁的属性??
      

  10.   

    这样的代码有错吗?
    aqoquery1.close;
    aqoquery1.sql.clear;
    aqoquery1.sql.add('select bookno,bookname from book where class like :class');
    aqoquery1.parameters.parambyname('class').value:=content; {content:='%'+combobox1.text+'%';}
    aqoquery1.open;
      

  11.   

    “连接设置都设对了,可是还是显示不了。运行后,会出现垂直滚动条,应该是数据已经查到了,就是看不到”这样的情况是不是你的DBGRID的字段设置没搞好?动态使用SQL时原来的那些字段盖在了生成的数据上了~~
      

  12.   

    终于找到错误的原因了,因为dbgrid是动态的显示数据库的信息,不能保存信息。
    而我在代码后面有close语句,才发生了这种错误。
    真是够低级的错误啊。
    谢谢大家的回复!平均给分吧!