procedure TForm1.Image4Click(Sender: TObject);
var ADOQuery1: TADOQuery; begin
{數(shù)據(jù)庫操作:判斷用戶和密碼是否正確} if (edit1.Text<>'') and (edit2.Text<>'') then //第一種情況:用戶輸入了用戶名和密碼 begin ChDir(ExtractFilePath(Application.ExeName)); //轉(zhuǎn)到當(dāng)前EXE文件所在目錄 ChDir('..');//轉(zhuǎn)到上級目錄 ExeRoot := GetCurrentDir; //獲取當(dāng)前目錄.并存放于ExeRoot中 DataFile := GetCurrentDir+'\Data\dzyv1.mdb' ; //取得數(shù)據(jù)庫文件dzyv1.mdb的路徑 ADOQuery1:= TADOQuery.Create(self); //動態(tài)創(chuàng)建ADOQuery組件 ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataFile+';Persist Security Info=False;'; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from t_user where user_name="'+edit1.Text+'" and user_pass="'+edit2.Text+'" '); ADOQuery1.Open; if ADOQuery1.Eof then //數(shù)據(jù)集為空,,即eof為true begin LogTimes := LogTimes+1; if messagebox(handle,'您填寫的用戶或密碼有錯誤,!是否重新輸入?','出錯提示',mb_iconinformation+mb_okcancel)=IDcancel then application.Terminate; if LogTimes>=3 then begin messagebox(handle,'對不起,,登錄次數(shù)超過3次,,程序自動關(guān)閉!','非法登錄',MB_ICONWARNING+mb_ok); application.Terminate; end; end else begin {用戶和密碼正確,,登錄成功} UserType := ADOQuery1.FieldByName('user_type').AsString; UserName := ADOQuery1.FieldByName('user_name').AsString; LogTimes := 0; ADOQuery1.Free; Form1.Hide; //隱藏登陸窗口 form2.ShowModal; //顯示主窗口 end; end else //第二種情況:用戶名或者密碼未輸入 messagebox(handle,'您沒有填寫用戶和密碼,!','出錯提示',mb_iconinformation+mb_ok) end; 注意:這段代碼中有幾個全局變量:logtimes,usertype,,userName,DataFile,ExeRoot,,需要在程序implemention之前定義這些變量:
var
Form1:Tform1
在這行代碼后面接著寫:
LogTimes : integer;
UserType: string;
userName: string;
ExeRoot : string;
DataFile:string;
|
|