我使用TADOConnection建立了与数据库的连接,用TADOQuery执行SQl语句来提取数据,由断点显示已经TADOQuery控件已经获取了数据,但是我的TDBGrid控件好像没有获取到,并无显示数据。我是这样进行数据关系绑定的:
TDBGrid.DataSource:=TQuery.DataSource;
请教,请教。

解决方案 »

  1.   

    你应该另外放一个DataSource控件把它连接到TQuery再把这个DataSource赋给TDBGrid.DataSource,TQuery不会自动建立一个DataSource,你很可能只是赋给TDBGrid.DataSoruce一个nil.
      

  2.   

    To: manfeng() 
    我按照你那样做了,但是TDBGrid控件还是无法显示数据,请教请教! 
      

  3.   

    你应该另外放一个DataSource控件把它连接到TQuery再把这个DataSource赋给TDBGrid.DataSource,
    再把ADOQUERY ACTIVE一下
      

  4.   

    To: jingbianfc(『静⊙变』) 
        TADOQuery.SQL.Text:=SQL;
        TADOQuery.Open;
        TADOQuery.ExecSQL;
        TADOQuery.Active;
    但是,我的TDBGrid还是无法显示提取到的数据;有一点值得提一下,我查到4条记录,TDBGrid的行数跟着变成4行,只是在单元格中没有任何数据显示。我是在属性中进行绑定设置的,TADOQuery.Connection:=TADOConnection;TDataSource.DataSet:=TADOQuery;TDBGrid.DataSource:=TDataSource。
    请问我的设置在哪里存在问题?该怎样解决呢?
      

  5.   

    你是不是在TDBGrid上设置了固定列了?
      

  6.   

    设了固定列,就要和Query中的Fields关联起来。
      

  7.   

    哦,DBGrid上设定了固定列,就需要指定这些列的字段是什么
      

  8.   

    此处假设你放置的组件为:
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;属性设置为;
        ADOQuery1.Connection:= ADOConnection1;
        DataSource1DataSet:=ADOQuery1;
        DBGrid1.DataSource := DataSource1:
    语句为:
        ADOQuery1.SQL.Text:=SQL;
        ADOQuery1.Open;
    就可以显示了。DBGRID如果没有设置固定列,程序会给你默认显示sql语句字段的。大概楼主的错误在于不该给TADOQuery等类的属性设置,而应该给类派生的对象的属性赋值。
      

  9.   

    字段是英文的,需要在dbgrid中单击,添加字段,在相应修改每个字段的属性