高手們;
你們好這是我寫的代碼;我想達到的目的,登入系統的時候,如果用戶名和密碼錯誤連續三次錯誤,系統就自動註銷.能不能幫我指教下這些代碼那需要改正才正確,謝謝!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:Integer;
czymc:string;
mm:Boolean;
begin
i:=0;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQl.Add('Select * from UserTable where(Username=:a)and(Password=:b)');
Parameters.ParamBYName('a').Value:=Trim(Edit1.Text);
Parameters.ParamBYName('b').Value:=Trim(Edit2.Text);
Open;
end;
if ADOQuery1.RecordCount>0 then
begin
czymc:=ADOQuery1.FieldByName('UserName').AsString;
mm:=true;
Edit1.Clear;
Edit2.Clear;
Close;
end
else
begin
if i<3 then
begin
Application.MessageBox('用戶名稱和密碼不正確,需要重新輸入?.','提示',64);
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
Inc(i);
end
else begin
i:=i+1;
Application.MessageBox('對不起,你不能使用.','提示',64);
Application.Terminate;
end;
end;
end;
你們好這是我寫的代碼;我想達到的目的,登入系統的時候,如果用戶名和密碼錯誤連續三次錯誤,系統就自動註銷.能不能幫我指教下這些代碼那需要改正才正確,謝謝!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:Integer;
czymc:string;
mm:Boolean;
begin
i:=0;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQl.Add('Select * from UserTable where(Username=:a)and(Password=:b)');
Parameters.ParamBYName('a').Value:=Trim(Edit1.Text);
Parameters.ParamBYName('b').Value:=Trim(Edit2.Text);
Open;
end;
if ADOQuery1.RecordCount>0 then
begin
czymc:=ADOQuery1.FieldByName('UserName').AsString;
mm:=true;
Edit1.Clear;
Edit2.Clear;
Close;
end
else
begin
if i<3 then
begin
Application.MessageBox('用戶名稱和密碼不正確,需要重新輸入?.','提示',64);
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
Inc(i);
end
else begin
i:=i+1;
Application.MessageBox('對不起,你不能使用.','提示',64);
Application.Terminate;
end;
end;
end;
解决方案 »
- 关于内存映射文件
- 请问该怎么实现按ESC键就能关闭窗体form
- QuantumGrid,cxGrid,主从表结构,有时在从表里添加记录保存后会消失.何解?
- 如何将窗体显示在Panel中
- 这样的定义的目的是什么?
- 窗口得到焦点!
- 鼠标晃动显示DBGridEh中字段的内容
- bitmap是一个控件吗?不明白,书上怎么都没介绍
- 用来在1个窗体中显示另1个窗体的构件叫什么?比如:formshow.showform(form2)
- 用代码读取Excel文件,怎样知道Excel的行数,列数是多少,也就是说通过循环得到Excel中的数据?
- 【大家好,我有几个关于创业的问题,希望有创业经验,或是现在在开公司的朋友们给一些建议?】
- 安装问题
while i < 3 do
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQl.Add('Select * from UserTable where(Username=:a)and(Password=:b)');
Parameters.ParamBYName('a').Value:=Trim(Edit1.Text);
Parameters.ParamBYName('b').Value:=Trim(Edit2.Text);
Open;
end;
if ADOQuery1.RecordCount>0 then
break
else
begin
Application.MessageBox('用戶名稱和密碼不正確,需要重新輸入?.','提示',64);
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
Inc(i);
end;
end;if i>= 3 then
begin
Application.MessageBox('對不起,你不能使用.','提示',64);
Application.Terminate;
end
else
Application.MessageBox('成功.','提示',0);
我的意思 ;
第一次輸入用戶名或則密碼一項,提示'對不起,你不能使用'.系統不能註銷
第二次輸入用戶名或則密碼其中一個錯誤,提示'對不起,你不能使用'.系統不註銷
第三次的時候在輸入錯誤.系統才自動註銷..
如果一次就等入正確那麼確定直接進入主介面.謝謝!
能不能在幫我修改下了
因為我也用過循環語句區嘗試和你那個效果一樣.
if i = 3 then
begin
Application.MessageBox('對不起,你不能使用.','提示',64);
Application.Terminate;
end
else
beginend;
begin
Close;
SQL.Clear;
SQl.Add('Select * from UserTable where(Username=:a)and(Password=:b)');
Parameters.ParamBYName('a').Value:=Trim(Edit1.Text);
Parameters.ParamBYName('b').Value:=Trim(Edit2.Text);
Open;
end;
if ADOQuery1.RecordCount>0 then
i:=0;
while i<2 do begin
Application.MessageBox('蚚靡想睿躇徨祥淏復,剒猁笭陔??','枑尨',64);
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
Inc(i);
Exit;
end;
if i<2 then
begin
Application.MessageBox('腎?傖髡.','枑尨',0);
Form2:=TForm2.Create(nil);
Form2.Show;
Form1.Hide;
end;
begin
i:=i+1;
Application.MessageBox('祥,斕祥夔妏蚚.','枑尨',64);
Application.Terminate;
end;
end;
原始密碼不能進入介面了
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQl.Add('Select * from UserTable where(Username=:a)and(Password=:b)');
Parameters.ParamBYName('a').Value:=Trim(Edit1.Text);
Parameters.ParamBYName('b').Value:=Trim(Edit2.Text);
Open;
end;
if ADOQuery1.RecordCount>0 then
begin
czymc:=ADOQuery1.FieldByName('Username').AsString;
m:=True;
Application.MessageBox('Success!!','Hite',64);
Edit1.Clear;
Edit2.Clear;
Form2:=TForm2.Create(nil);
Form2.Show;
Form1.Hide;
Form1.Free;
end
else
begin
if i<3 then
begin
Application.MessageBox('蚚靡想睿躇徨祥淏復,剒猁笭陔??','枑尨',64);
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
Inc(i);
end
{begin
Application.MessageBox('腎?傖髡.','枑尨',0);
Form2:=TForm2.Create(nil);
Form2.Show;
Form1.Hide;
end;}
else
begin
Application.MessageBox('祥,斕祥夔妏蚚.','Hite!',64);
Application.Terminate;
end;
end;
end;