unit RoomLoginForm;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, jpeg, ExtCtrls;type
TRoomLogin = class(TForm)
Image1: TImage;
Label2: TLabel;
Label3: TLabel;
Label1: TLabel;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
//var
//rights: interger;
end;var
RoomLogin: TRoomLogin;implementation{$R *.dfm}
uses MainForm;procedure TRoomLogin.Button1Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 权限清单 where (权限='''+combobox1.Items[combobox1.ItemIndex]+''')and(员工编号='''+edit1.Text+''') and (密码='''+edit2.Text+''') ');
ADOQuery1.Open;
if ADOQuery1.Eof=false then
begin
if ADOquery1['权限']='员工'then
begin
Main.N2.Enabled:=false;
Main.N3.Enabled:=false;
Main.N12.Enabled:=false;
main.Show;
RoomLogin.hide;
end {if combobox1.Items[combobox1.ItemIndex]='员工' then
begin
//这里的代码是设计关闭"员工"用户不能使用的菜单项
Main.N2.Enabled:=false;
Main.N3.Enabled:=false;
Main.N12.Enabled:=false;
end;
main.Show;
RoomLogin.hide;} else
if ADOquery1['权限']='经理'then
begin Main.N12.Enabled:=false;
main.Show;
RoomLogin.hide;
end
else
showmessage('用户名称或密码不正确,请重新输入。');
Edit1.Clear;
Edit2.Clear;
end;
end;procedure TRoomLogin.Button2Click(Sender: TObject);
begin
close;
end;end.
这是我的代码,运行可通过,但是输入数据后会“用户名称或密码不正确,请重新输入”。无法登录主窗体,请教高手如何解?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, jpeg, ExtCtrls;type
TRoomLogin = class(TForm)
Image1: TImage;
Label2: TLabel;
Label3: TLabel;
Label1: TLabel;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
//var
//rights: interger;
end;var
RoomLogin: TRoomLogin;implementation{$R *.dfm}
uses MainForm;procedure TRoomLogin.Button1Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 权限清单 where (权限='''+combobox1.Items[combobox1.ItemIndex]+''')and(员工编号='''+edit1.Text+''') and (密码='''+edit2.Text+''') ');
ADOQuery1.Open;
if ADOQuery1.Eof=false then
begin
if ADOquery1['权限']='员工'then
begin
Main.N2.Enabled:=false;
Main.N3.Enabled:=false;
Main.N12.Enabled:=false;
main.Show;
RoomLogin.hide;
end {if combobox1.Items[combobox1.ItemIndex]='员工' then
begin
//这里的代码是设计关闭"员工"用户不能使用的菜单项
Main.N2.Enabled:=false;
Main.N3.Enabled:=false;
Main.N12.Enabled:=false;
end;
main.Show;
RoomLogin.hide;} else
if ADOquery1['权限']='经理'then
begin Main.N12.Enabled:=false;
main.Show;
RoomLogin.hide;
end
else
showmessage('用户名称或密码不正确,请重新输入。');
Edit1.Clear;
Edit2.Clear;
end;
end;procedure TRoomLogin.Button2Click(Sender: TObject);
begin
close;
end;end.
这是我的代码,运行可通过,但是输入数据后会“用户名称或密码不正确,请重新输入”。无法登录主窗体,请教高手如何解?
解决方案 »
- delphi 编程如何得到其它程序窗口的大小
- 关于打印设置纸张大小的问题!!
- 如何让没有最高管理员权限的用户可以在注册表中创建路径
- 紧急求助,大哥大姐们帮帮俺啊~~~~~~~~~
- delphi调vc动态库问题
- 请问怎样改变当前目录到指定的目录?谢谢~
- delphi 怎么将RzLisBox控件中得内容保存到目录下的mingzi.txt两段中?
- 如何破word95(6.0)中文版的密码
- 有没有人写过,把REG文件导入注册表的程序?不要调用regedit.exe啊
- 怎么好久不见WINAPI大叔了,WINAPI,我们想你.....呜呜呜......
- 求一个IDTCPServer/clinet的程序
- [求助]VC++6.0下的图像分割问题
begin
if ADOquery1['权限']='员工'then
begin
Main.N2.Enabled:=false;
Main.N3.Enabled:=false;
Main.N12.Enabled:=false;
main.Show;
RoomLogin.hide;
end {if combobox1.Items[combobox1.ItemIndex]='员工' then
begin
//这里的代码是设计关闭"员工"用户不能使用的菜单项
Main.N2.Enabled:=false;
Main.N3.Enabled:=false;
Main.N12.Enabled:=false;
end;
main.Show;
RoomLogin.hide;} else
if ADOquery1['权限']='经理'then
begin Main.N12.Enabled:=false;
main.Show;
RoomLogin.hide;
end
ADOQuery1.next; //这里加上这句
Build
[Error] RoomLoginForm.pas(63): Missing operator or semicolon
[Error] RoomLoginForm.pas(65): ';' not allowed before 'ELSE'
[Fatal Error] hotel.dpr(16): Could not compile used unit 'RoomLoginForm.pas'
改成:ADOQuery1.SQL.Add('select * from 权限清单 where (权限='''+combobox1.Text+''') and (员工编号='''+edit1.Text+''') and (密码='''+edit2.Text+''')'); //注意空格。
2.if ADOQuery1.Eof=false then
改成:if ADOQuery1.RecordCount>0 then ...
注意:要在该条件语句的最后加上:ADOQuery1.Close;