关闭TAdoconnection后如何在组合框或dbgrid中维护数据库输出

Gre*_*ner 1 delphi

在这个问题中,我的目标是检索数据库表内容.填充dbGrid,关闭连接.如果我使用以下代码,dbgrid或combobox将丢失信息.

adoQry := TADOQuery.Create(self);
adoQry.Connection := adoConn;
adoQry.SQL.Add(SqlStr);
adoQry.Prepared := true;

try
  adoQry.Active := True;
except
  on e: EADOError do
 begin
   MessageDlg('Error while doing query', mtError,
              [mbOK], 0);

   Exit;
 end;
end;
for i := 0 to adoQry.RecordCount - 1 do
begin
  cmbCnty.Items.Add(adoQry.Fields[1].AsString);
   adoQry.Next
end;

FreeAndNil(adoConn);
FreeAndNil(adoQry);
Run Code Online (Sandbox Code Playgroud)

在dbGrid的情况下,我使用StringGrid,它适用于我.但是,有时候我想使用dbGrid,但不知道如何保持内容与数据库的紧密连接(当然,在检索内容之后)任何建议,例子都会受到赞赏.
克里斯

Ces*_*ero 5

您可以使用Query ResultSet填充TClientDataSet,然后将TClientDataSet链接到TDBGrid.