本人在做一个用ADO组件连接的LOGIN窗体时出现的问题,以下是部分源码,请帮忙指正(0分)

G

gxc

Unregistered / Unconfirmed
GUEST, unregistred user!
unit main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
AHMEnhancedClass, AHMTSplashScreen, StdCtrls, ADODB, Db, AHMDialogClass,
AHMTDBPasswordDlg, Buttons, ExtCtrls;

type
TfmLogin = class(TForm)
AHMSplashScreen1: TAHMSplashScreen;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOQuery1: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
fmLogin: TfmLogin;
tyName,tyPass: string;

implementation

uses fm_Main;

{$R *.DFM}

procedure TfmLogin.FormCreate(Sender: TObject);
begin
AHMSplashScreen1.Execute;
end;

procedure TfmLogin.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure TfmLogin.BitBtn1Click(Sender: TObject);
begin
tyName:= edit1.text;
tyPass:= edit2.text;

if tyName=''
then
showmessage('请输入用户名. . . . . . . . . . .')
else
begin
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select name,password from UserInfo Where name=tyName and password=tyPass');
ADOQuery1.Open;
if ADOQuery1.active
then
fmMain.showmodal
else
begin
showmessage('请重新输入用户名和密码');
edit1.text:='';
edit2.text:='';

end;
end;
end;


end.
 
ADOQuery1.active
改为
ADOQuery1.recordcount>0
 
或者将
if ADOQuery1.active
改为
if not ADOQuery1。eof then
 
ADOQuery1.SQL.Add('Select name,password from UserInfo Where name=tyName and password=tyPass');
你这样能行么?不解!tyName和tyPass是变量阿,这样不成了字符串了么?
 
试试ADOQuery1.SQL.Add('Select name,password from UserInfo Where name='+''''+tyName+''''+'and password='+''''+tyPass+'''');
 
给你一段我程序里面的登录窗体的代码,count是一个全局变量,记录输入密码的次数,
dm.query是我在数据模块中定义的TADOQuery,只要将下面代码中的dm.query换成ADOQuery1
,combobox1换成你的edit1,edit1换成edit2就ok:
procedure Tloginform.Button1Click(Sender: TObject);
begin
if combobox1.Text='' then
begin
showmessage('请选择正确的用户并'#13#10'输入密码进入本系统!');
exit;
end
else
begin
count:=count+1;
with dm.query do
begin
close;
sql.Clear;
sql.Add('select 用户名,口令 from t_user');
sql.Add('where 用户名='''+combobox1.Text+'''');
open;
end;
//用户名和密码相符则进入系统
if dm.query.FieldByName('口令').AsString=edit1.Text then
begin
loginform.Hide;
mainform.ShowModal;
end
else
begin
if count=3 then //三次输入密码错误则中断程序
begin
showmessage('您的密码严重错误,您没有权限操作本系统!');
application.Terminate;
end
else
//是否重新输入密码
begin
if messagedlg('您的用户名或口令'#13#10'不对,请验证后再试',mtConfirmation, [mbYes, mbNo], 0) = mrno then
application.Terminate
else
begin
edit1.Clear;
edit1.SetFocus
end
end
end
end;
end;
 
顶部