Delphi 如何将记录字段从dbgrid显示到editbox
我建立了一个access数据库,并将其与一个Delphi 如何将记录字段从dbgrid显示到editbox,delphi,ms-access-2010,delphi-7,Delphi,Ms Access 2010,Delphi 7,我建立了一个access数据库,并将其与一个ADOquery和Datasource连接。我建立了一个名为BagCost的表,其中包含字段名bag size和cost。我将一个DBgrid附加到一个表单中,并将其与“Bagcost”表链接。Dbgrid具有以下字段: 如何在运行时将dbgrid列中的四个成本显示到不同的editboxs 我希望我能正确地理解你。您需要做的是从四条记录中的每一条读取数据。使用First和Next方法更改活动记录,Eof方法测试活动记录是否是数据集中的最后一条记录。或
ADOquery
和Datasource
连接。我建立了一个名为BagCost
的表,其中包含字段名bag size
和cost
。我将一个DBgrid
附加到一个表单中,并将其与“Bagcost”表链接。Dbgrid
具有以下字段:
如何在运行时将dbgrid列中的四个成本显示到不同的
editboxs
我希望我能正确地理解你。您需要做的是从四条记录中的每一条读取数据。使用First
和Next
方法更改活动记录,Eof
方法测试活动记录是否是数据集中的最后一条记录。或者(对于大量记录),使用DisableControls
和EnableControls
方法来防止数据感知控件在活动记录每次更改时更新
示例:
接下来是一个基本示例,它使用AfterOpen
事件从查询的每个记录中读取字段值
procedure TfrmMain.qryAfterOpen(DataSet: TDataSet);
begin
DataSet.DisableControls;
try
DataSet.First;
if not DataSet.Eof then Edit1.Text := DataSet.FieldByName('cost').AsString else Edit1.Text := 'Record not found';
DataSet.Next;
if not DataSet.Eof then Edit2.Text := DataSet.FieldByName('cost').AsString else Edit2.Text := 'Record not found';
DataSet.Next;
if not DataSet.Eof then Edit3.Text := DataSet.FieldByName('cost').AsString else Edit3.Text := 'Record not found';
DataSet.Next;
if not DataSet.Eof then Edit4.Text := DataSet.FieldByName('cost').AsString else Edit4.Text := 'Record not found';
DataSet.First;
finally
DataSet.EnableControls;
end{try};
end;
您是否询问如何在运行时为数据集中的每条记录创建
TEdit
组件?数据集中的记录数是多少?始终为4?谢谢。我已经在表单中创建了四个editbox
。我只需要显示这些编辑框的成本
。记录的计数不会更改。但是,如果记录发生变化,那么我将不得不在运行时创建Tedit
组件。我添加了delphi
标记,因为这个问题不仅仅是关于delphi 7感谢Zhorov的代码。在根据我的应用程序为数据集
输入正确的名称后,它可以完美地工作。我不知道如何实现按顺序读取记录的first
、next
和eof
方法。我只使用查询检索单个记录。