首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

登陆界面有关问题,

2012-03-03 
登陆界面问题,急!!!!!我写了一个登陆界面,想实现不同的人员进入不同的界面代码如下:procedureTFrmlogin.Sp

登陆界面问题,急!!!!!
我写了一个登陆界面,想实现不同的人员进入不同的界面
代码如下:
procedure   TFrmlogin.SpeedButton1Click(Sender:   TObject);

begin
        UserName:=Edit1.Text;
        UserType:=CBduty.SelText;
        code:=Edit2.Text;
        LogTimes:=0;
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add( 'select   *   from   employee   where   employee_name= ' ' '+Edit1.Text+ ' ' '   and   password= ' ' '+Edit2.text+ ' ' '   and   employee_duty= ' ' '+Cbduty.text+ ' ' ' ');
        ADOQuery1.Open;
        if   ADOQuery1.Eof   then
        begin
            LogTimes   :=   LogTimes+1;
            showmessage( '错误的用户名或密码 ');
        end
        else
            if   LogTimes> =3   then
            begin
                  showmessage( '超过3次错误,将关闭登陆界面 ');
                  close;
            end
            else
                begin
                code   :=   ADOQuery1.FieldByName( 'password ').AsString;
                UserName   :=   ADOQuery1.FieldByName( 'employee_name ').AsString;
                if   UserType   = '仓管员 '   then
                      begin
                            LogTimes   :=   0;
                            ADOQuery1.Free;
                            Frmlogin.Hide;
                            kucunguanliForm.ShowModal;
                            Frmlogin.Show;
                      end
                else
                    if   UserType   = '销售员 '   then
                          begin
                                LogTimes   :=   0;
                                ADOQuery1.Free;
                                Frmlogin.Hide;
                                Frmxs.ShowModal;


                                Frmlogin.Show;
                          end
                else
                    if   UserType   = '系统管理 '   then
                        begin
                                LogTimes   :=   0;
                                ADOQuery1.Free;
                                Frmlogin.Hide;
                                Form1.ShowModal;
                                Frmlogin.Show;
                        end
                else
                    if   UserType   = '售后服务 '   then
                          begin
                                LogTimes   :=   0;
                                ADOQuery1.Free;
                                Frmlogin.Hide;
                                frmUntrade.Show;
                                Frmlogin.Show;
                          end
                end

end;

procedure   TFrmlogin.SpeedButton2Click(Sender:   TObject);
begin
      close;
end;

end.


发现登陆的时候有2个问题
1:不能重复登陆
2:必须先写用户名和密码,再选部门,不然无法正常登陆
请教下高手怎么解决这个问题啊,急死我了
帮忙解决下,谢谢了



[解决办法]
1.ADOQuery1.Free; 去掉试试.!
2.在窗口显示中加一条 UserType:=CBduty.SelText; 试试.!

[解决办法]
你的登陆完一次以后数据库指针在那里知道吗
试试在读数据库的之前ADOQuery1.first
[解决办法]
// code := ADOQuery1.FieldByName( 'password ').AsString;
// UserName := ADOQuery1.FieldByName( 'employee_name ').AsString;
没看明白保存code,UserName有什么用。发现LZ太喜欢else,其实很多时候可以不用的。
试试我的代码

procedure TFrmlogin.SpeedButton1Click(Sender: TObject);
begin
UserName:=Edit1.Text;
UserType:=CBduty.SelText;
code:=Edit2.Text;
LogTimes:=0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add( 'select * from employee where employee_name= ' ' '+UserName+ ' ' ' and password= ' ' '+code+ ' ' ' and employee_duty= ' ' '+UserType+ ' ' ' ');



//这句也可以这样写
ADOQuery1.SQL.Add( 'select * from employee where employee_name= '+QuotedStr (UserName)+ ' and password= '+QuotedStr(code)+ ' and employee_duty= '+QuotedStr(UserType));
ADOQuery1.Open;
if LogTimes> =3 then
begin
showmessage( '超过3次错误,将关闭登陆界面 ');
close;
end;
if ADOQuery1.RecordCount < 1 then
begin
LogTimes := LogTimes+1;
showmessage( '错误的用户名或密码 ');
end else
begin
if UserType = '仓管员 ' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
kucunguanliForm.ShowModal;
Frmlogin.Show;
end;
if UserType = '销售员 ' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Frmxs.ShowModal;
Frmlogin.Show;
end;
if UserType = '系统管理 ' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
Form1.ShowModal;
Frmlogin.Show;
end;
if UserType = '售后服务 ' then
begin
LogTimes := 0;
ADOQuery1.Free;
Frmlogin.Hide;
frmUntrade.Show;
Frmlogin.Show;
end;
end;

end;
[解决办法]
若想权限控制的话,这种方法不可取
[解决办法]
我覺得權限控制最好用模塊比較好一點
操作方便,管理方便

热点排行