我是一个delphi 菜鸟 所以可能问的问题比较初级 望大虾们能给予小弟帮助
言归正传:
我设计了一个frm_js 在模块里添加了一个DBgrid组件 也在DBgrid里加了个Datasource1 
程序如下:
procedure Tfrm_js.FormShow(Sender: TObject);
begin
with data1.ADOQjs do
   begin
      close;
      sql.Clear;
      sql.Add('select * from 书籍信息表');
      open;
   end;
   data1.ADOQjs.Active:=true;
end;DBgrid 的 Datasource属性为Datasource1 
Datasource的 Dataset属性为 Data1.ADOQjs
在frm_data 里 ADOQjs 的 Connection 属性为 ADOconnection1我想达到的效果是 DBgrid 能自动的呈现 书籍信息表 
运行结果却是 DBgrid里面一片空白 
请教,谢谢~~~ 
补充:
ADoconnection数据库连接好的
数据库里也是有数据的 

解决方案 »

  1.   

    按理是没问题的data1.ADOQjs.Active:=true; 这句是多余的
      

  2.   

    可以测一下有没有数据showmessage(inttostr(data1.adoqjs.RecordCount))
      

  3.   

    DBGrid中的列名是让其自动添加的还是你预先设置好的?
    还有就是DBGrid各列所对应的字段名称你是怎么设置的,或者说有没有设置?
      

  4.   

    没有数据就是下面几种情况
    1.数据集指向错误
    2.grid字段未指定
    3.grid是固定列,没有对应字段
    4.数据集查询结果为空
      

  5.   

    这个问题简单1、双击 AdoConnection1, 连接好以后,Connected 设置成 True2、AdoQuery1 的 Connection 设置成 AdoConnection1,在 SQL 属性里面写 select * from 书籍信息表,设置 Active 为 True3、DataSource1 的 DataSet 设置成 AdoQuery14、DBGrid1 的 DataSource 设置成 DataSource1应该就是这些,你可以试试
      

  6.   

    先用ShowMessage(inttostr(data1.adoqjs.RecordCount))检查一下有没有数据集。
      

  7.   

    ADOconnection1 connected就可以看到数据了吧
      

  8.   

    先试下不编码吧,都设置控件属性 没调试就应该能显示数据的,设置ACTIVE=TRUE 开启程序就自动显示数据了
      

  9.   

    在formCreate中加入
    ADOConnection.active := True ;
    或在设计时直接将其设置就可以了