这几个是数据库控件的相应的设置。
qry.connection := ac1;
ds.DataSet := qry;
dxDBGrid1.DataSource := ds;
我是用TADOConnection连接的access数据库。unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, DB, ADODB;type
  TForm1 = class(TForm)
    AC1: TADOConnection;
    qry: TADOQuery;
    ds: TDataSource;
    dxDBGrid1: TdxDBGrid;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  
  function OpenQuery(query:TADOQuery;SqlStr:string;ShowMsg:boolean=true):boolean;overload;
var
  Form1: TForm1;implementation{$R *.dfm}function OpenQuery(query:TADOQuery;SqlStr:string;ShowMsg:boolean=true):boolean;
begin
    query.close;
    query.Filter := '';
    query.Filtered := false; 
    query.sql.clear;
    query.sql.add(sqlstr);
    try
      query.open;
    except
      if ShowMsg then ShowMessage('打开'+query.name+'出错,sql语句为:'+sqlstr);
      result := false;
      exit;
    end;
    result := true;
end;procedure TForm1.FormCreate(Sender: TObject);
var
   str :string;
   a2 : TdxDBGridColumn;
begin
   str := 'select * from address ';
   with qry do
   begin
   a2.BandIndex := 0;
   if not OpenQuery(qry,str) then exit;
   a2:=TdxDBGridColumn(dxDBGrid1.CreateColumn(TdxDBGridColumn));
   a2.Caption := '成绩';
   a2.MinWidth := 120;
   a2.Width := 120;
   end;
end;
end.我应该怎样才能把表中的成绩一列显示在dxdbgrid1中,
麻烦大家指出应该在代码中修改,还是属性设置错误
还有就是TdxDBGridColumn的 FieldName有什么用,大家给一些dxDBGrid与dxDBTreelist的简单例子

解决方案 »

  1.   

    我的dxDBGrid里显示不了表的记录,我的哪个属性没有设好,哪位说一下
      

  2.   

    我设置KeyField时,出现qry : Missing SQL propery
      

  3.   

    你的QUERY中没有语句,你不能设置KEYFIELD
      

  4.   

    我在程序中加入dxDBGrid1.KeyField := '成绩';
    也不行,是不是哪里还没有设置
      

  5.   

    得加上这一条
    a2.FieldName = '成绩';
      

  6.   

    再不行参考一下这段代码:
     procedure showGrid();
    > begin
    >
    >   egrid := TdxDBGrid.Create(self);
    >   egrid.Left   := 456;
    >   egrid.Top    := 108;
    >   egrid.height := 108;
    >   egrid.Width  := 205;
    >   egrid.DataSource := dsCust;
    >   egrid.LookAndFeel :=  lfUltraFlat;
    >   egrid.DefaultFields := true;
    >   egrid.BeginUpdate;
    >   try
    >       egrid.KeyField := 'custno';
    >       egrid.OptionsDB := egrid.OptionsDB + [edgoLoadAllRecords];
    >       egrid.OptionsBehavior := egrid.OptionsBehavior + [edgoAutoSort];
    >       egrid.Filter.Active := True;
    >
    >   // create a couple of columns...
    >   with egrid.CreateColumn(TdxDBGridColumn) do
    >     begin
    >       FieldName := 'custno';
    >       Caption := 'ticket';
    >       Visible := true;
    >       Width := 50;
    >     end;
    >
    >   with egrid.CreateColumn(TdxDBGridColumn) do
    >     begin
    >       FieldName := 'company';
    >       Caption := 'Customer';
    >       Visible := true;
    >       Width := 170;
    >     end;
    >
    >   finally
    >     egrid.EndUpdate;
    >   end;
    >
    >   egrid.Visible := true;
    >
      

  7.   

    to c4313848 (人生因你而改变):
    如果123726969(铁棒磨成针,不是白痴是傻瓜) 解答了你的问题,请把分加给我;那是我另外一个号,我不打算升它。
    上面那段代码的网址:
    http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2003-11/0537.html.
      

  8.   

    KeyField,FieldName,FieldbyName三者有没有什么关系