2011-03-31 130 views
1

我有另一個問題,我有一個數據庫用UserID的數據。 我想要一個編輯該數據的選項,並將其寫入正確的行中。我們可以「編輯」數據,但它會在數據庫中創建一個全新的行, 如何覆蓋表中的現有數據?我不得不使用查找,但如何?如何使用查找來編輯數據庫中的數據?

這是代碼:

procedure TfmKlant.BTOpslaanClick(Sender: TObject); 
begin 
    dm.atInlog.Open; 
    gevonden := false; 
    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; 
     dm.atInlog.Append; 
     dm.atInlog['naam']  := leNaam.text; 
     dm.atInlog['adres']  := leAdres.text; 
     dm.atInlog['postcode'] := lePostcode.text; 
     dm.atInlog['telefoon'] := leTelefoonnummer.text; 
     dm.atInlog['email']  := leEmail.text; 
     dm.atInlog['password'] := lePassword.text; 
     dm.atInlog.Post; 
     end 
     else 
    dm.atInlog.Next; 
    end; 
     leemail.Clear; 
     lenaam.Clear; 
     leadres.clear; 
     lepostcode.clear; 
     letelefoonnummer.clear; 
     lepassword.clear; 
end; 
+0

哪種類型dm.atInlog? – jachguate 2011-03-31 16:13:32

+0

這是一張桌子。它在數據模塊中創建並連接 – 2011-03-31 20:32:20

+0

我的調色板中沒有「表」組件,但是如果您的「表」來自TDataSet,則無需手動迭代所有記錄即可達到您想要的記錄。使用Locate方法,或者,如果DataSet支持索引,則使用最快的FindKey方法。 – jachguate 2011-04-01 01:48:37

回答

3

使用dm.atInlog.Edit;,而不是dm.atInlog.Append;在你的代碼

+0

我們很愚蠢:')做了詭計,你不知道我們一直在這個問題上坐了多久 – 2011-03-31 14:42:06

相關問題