如何使用特定的数据库行delphi自动填写editlabel字段

时间:2011-04-04 07:42:35

标签: delphi

您好我有问题 我需要自动填写数据库中的信息,但如果我这样做:

       leemail.text             := dm.atInlog['email'];
       lenaam.text              := dm.atInlog['naam'];
       leAdres.text             := dm.atInlog['adres'];
       lePostcode.text          := dm.atInlog['postcode'];
       leTelefoonnummer.text    := dm.atInlog['telefoon'];
       leWoonplaats.Text        := dm.atInlog['Woonplaats']

它只需要第一行。我想要一个特定的行。 我可以使用这样的按钮来实现它:

procedure TfmKlant.BTGegevensClick(Sender: TObject);
begin
//vraag gegevens van gebruiker op
    dm.atInlog.Open;
    while (not gevonden) and (not dm.atInlog.eof) do
    begin
        if dm.atInlog['email'] = fminloggen.inlognaam
      then
      begin
//     plaats gegevens in de textboxen
       gevonden := true;
       leemail.text             := dm.atInlog['email'];
       lenaam.text              := dm.atInlog['naam'];
       leAdres.text             := dm.atInlog['adres'];
       lePostcode.text          := dm.atInlog['postcode'];
       leTelefoonnummer.text    := dm.atInlog['telefoon'];
       leWoonplaats.Text        := dm.atInlog['Woonplaats']
      end
        else dm.atInlog.Next;
end;

但它不是以创建形式执行此操作。如何使用所请求的数据自动填写带标签?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用TDataSet.Locate或Lookup:

type
  TfmKlant = class(TForm)
  // ... other declarations
  private
    procedure ShowData(p_Email: string);
  end;


...
    procedure TfmKlant.FormCreate(Sender: TObject);
    begin
      // assuming the data set is already open, and fminloggen.inlognaaem is already set
      if dm.atInLog.Locate('email', fminloggen.inlognaam, []) then
      begin
       ShowData(fminloggen.inloognam);
      end;
    end;

    procedure TfmKlant.ShowData(p_Email: string);
    begin
           gevonden := true;
           leemail.text             := dm.atInlog['email'];
           lenaam.text              := dm.atInlog['naam'];
           leAdres.text             := dm.atInlog['adres'];
           lePostcode.text          := dm.atInlog['postcode'];
           leTelefoonnummer.text    := dm.atInlog['telefoon'];
           leWoonplaats.Text        := dm.atInlog['Woonplaats']
    end;