如何在DBGrid中指定单元格?

问题描述:

我想从DBGrid中的特定单元格中获取数据?我如何在Delphi 7中执行此操作?我知道用Stringgrid很容易,如果你想要显示第2行第1列,只用StringGrid1.Cells[2,1],但是有什么办法可以用DBGrid来完成这个任务吗?如何在DBGrid中指定单元格?

TDBGrid不包含任何数据;来自相连的TDataSet。因此,要检索信息,您需要阅读数据库本身。 DBGrid中的当前行是DataSet中的当前记录(行),并且该列是连接到该行中列的TField

所以,如果你想从在网格中的第三列读取,并且该列连接到一个名为数据集中的“客户”字段,你刚才读的领域:

Customer := DBGrid1.DataSource.DataSet.FieldByName('Customer').AsString; 

或者,当然更好(因为你应该直接在你的代码中访问数据集):

Customer := CustomerTable.FieldByName('Customer').AsString; 
+0

对不起。我不明白你的意见是什么意思。我已经解释了如何获取数据。 –

+0

用你给我的方法,我仍然不能进入'DBGrid'的第二行?我可以得到第一行的所有值。但是他们是从第二行获取数据的一种方式吗? – 4DaMouf

+1

是的。使用'DBGrid1.DataSource.DataSet.Next;'或'CustomerTable.Next;'将记录指针移动到下一行。网格没有数据(正如我在第一句中所说的) - 你必须**从表格本身读取它。 –