2016-02-04 49 views
1

問題使用數據庫驗證登錄驗證

您好!我需要登錄在德爾福2010年。我有MS Access數據庫,我有字段(登錄ID,用戶名,密碼)。所以我有2個用於用戶名和密碼的TEdit組件。我已經連接到數據庫在德爾福和所有連接工作。

所以問題是,我不知道如何檢查來自TEdit的文本是否在數據庫中。我需要查詢之類的東西。

例子:

if Edit1.Text in login.username then 

something 

else 

something else 

希望你能理解我需要什麼,但無論如何,你可以要求更多信息的問題。我會感謝解決方案。

什麼我tryed

ADOQuery1.SQL.Text := 'SELECT FROM login WHERE username = :Edit1.Text'; 
ADOQuery1.ExecSQL; 

我不知道,如果它的工作原理。

如何檢查這樣的:

if ADOQuery1 execute then 

something 

else 

something else 
+0

您需要使用帶參數的ADO查詢並檢查用戶是否存在使用SELECT。如何使用TADOQuery在Delphi [文檔](http://docwiki.embarcadero.com/VCL/2010/en/ADODB.TADOQuery)中,以及如何使用SELECT在SQL手冊中。 –

+0

請檢查我最後一次更新。你能告訴我如何檢查查詢是否爲真(如果有效)或錯誤? –

+0

我剛剛做到了。別那麼不耐煩。你需要給人時間來寫他們的答案。 :-) –

回答

1

您需要正確參數查詢,並使用參數。 (你還需要編寫有效的SQL,這對於一個SELECT需要你想返回的列的列表。)

ADOQuery1.SQL.Text := 'SELECT UserName FROM login WHERE username = :User'; 
ADOQuery1.Parameters.ParamByName('User').Value := Edit1.Text; 

然後你需要打開(不執行)的查詢,看看它是否返回的值。

ADOQuery1.Open; 
if not ADOQuery1.IsEmpty then 
begin 
    // User exists. Do whatever you need next. 
end 
else 
    // Do what you want if user not found 

我強烈建議如果您要嘗試使用數據庫,您可以購買一本書或查找教程。 SELECT是您需要執行的最基本的操作之一。

+0

'[DCC錯誤] Unit1.pas(52):E2003未聲明的標識符:'ADOQuery1.Empty''Empty''問題我想。 –

+0

對不起。錯字。它是'IsEmpty'。 –

+0

非常感謝,所有作品都像鐘錶。 –