2

我有一个带有 TFDConnection、TFDQuery、TDataSource 和 TDBGrid 的 delphi 表单。我想显示我的查询获得的数据(从 table_1 中选择 *)并将其放入我的 DBGrid。我已经在组件之间建立了所有连接,但是在我启动我的 DBGrid 中的查询(返回 12 行)后显示 12 行,但它们是空的。显然我忘记了一些阻止我在 DBGrid 中看到数据的东西。你能帮我在我的行动中缺少什么吗?

  • 1-将所有组件添加到表单中。
  • 2- 将 FDQuery 与 FDConnection、TDataSource 与 FDQuery、DBGrid 与 TDataSource 连接。
  • 3-连接参数测试成功(问题不在我的连接参数中)
  • 4- 行数放在我的 DBGrid (12) 中,但没有可见的信息。
  • 5- 如果我遍历我的 FDQuery,我可以看到我需要的所有信息,但这并不能帮助我填充我的 DBGrid。
4

5 回答 5

3

你可以试试这个:

TFDQuery在表单的 OnShow 代码中显式激活您。像这样,

procedure TForm.FormShow(Sender: TObject);
begin
    FDQuery.Active:= True;
end;

它对我有用,希望它有所帮助。

于 2014-10-31T14:50:26.180 回答
1

DefaultDrawing如果 DBGrid 的属性设置为,您将获得在 DBGrid 中看到正确行数的行为,但网格的单元格是空的False。如果您的 DBGrid 是这种情况,显然只需设置DefaultDrawingTrue.

于 2015-09-11T20:24:24.817 回答
1

要解决这个问题(我也有同样的问题),打开查询后,设置:

datasource.dataset := Query

问题将得到解决。

于 2015-09-11T19:51:58.233 回答
0

我知道这个话题很老,但也许它可以帮助某人。就我而言,解决方案是:删除在设计时创建的所有 DBGrid 列,或者将列的 ( TColumn ) FieldName属性与它们在数据库表中命名的 EXACT 字段名称匹配。

于 2016-01-21T09:58:29.127 回答
-1

对于遇到此问题的其他人,解决方法如下:确保网格控件中的列名(不是标题)与查询中的字段名匹配。一旦他们匹配,他们应该表现得正确。

于 2017-01-16T18:04:46.180 回答