Delphi DBGrid没有显示数据

时间:2014-03-26 14:21:11

标签: delphi dbgrid firedac

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

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

5 个答案:

答案 0 :(得分:2)

你可以试试这个:

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

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

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

答案 1 :(得分:1)

要解决此问题(我有同样的问题),请在打开查询后设置:

datasource.dataset := Query

问题将得到解决。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

对于有此问题的其他人,这里是修复:确保网格控件中的列名(而不是标题)与查询中的字段名匹配。一旦匹配,他们应该表现得很好。