制作登陆窗口的密码验证问题

xu19834 2008-04-17 03:24:02
type
TForm4 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Query1: TQuery;
DataSource1: TDataSource;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
数据库paradox7 不知道怎么做能查询数据库里面 所有用户名密码跟输入的是否正确验证
希望高手给出代码谢谢了~Query1控件
...全文
88 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xu19834 2008-04-17
  • 打赏
  • 举报
回复
谢谢 WANGXUELLD


这次学到很多 谢谢 您9楼的话我也已经明白了
xu19834 2008-04-17
  • 打赏
  • 举报
回复
哦 谢谢 WANGXUELLD

哦知道了 password 是关键字 我把数据那个字段名改了就好了

万谢!!!
wangxuelid 2008-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xu19834 的回复:]
WANGXUELLD代码
这一句if Adoquery2.fieldbyname('mima').Asstring:='' then
报错Type of expression must be BOOLEAN
[/Quote]
看一下你的数据类型是否为varchar(),,,,
wangxuelid 2008-04-17
  • 打赏
  • 举报
回复


//--------------用户名和密码校验登录系统--------------------------------------------------------------
procedure Tlogin.Button1Click(Sender: TObject);
var
num,user,pass,temp:string;

begin
//------------------根据用户输入的密码和帐号进行查询----------
//保存用户输入的帐号和密码
user:=edit1.Text;
pass:=Edit2.Text;
//使用ADOQuery1组件时要养成好的习惯,先将其关闭,
//将原来的SQL语句清除后再添加新的SQL语句
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='''+user+'''and 密码='''+pass+'''';
Adoquery1.Open;
temp:=adoquery1.FieldByName('用户编号').AsString;
if temp<>'' then
//如果输入了正确的用户名和密码,那么必然能查到用户编号,否则结果为空
begin

//---------------根据用户获得的权限来确定能否操作相关窗口-----------------------
//先将所有按钮使能都设为否
manage.Button1.Enabled:=false;
manage.Button2.Enabled:=false;
manage.Button3.Enabled:=false;
manage.Button4.Enabled:=false;
manage.Button5.Enabled:=false;
info.N2.Enabled:=false;
info.N3.Enabled:=false;
info.N4.Enabled:=false;

//--------检查用户是否具有进货单权限,如是,则将进货单按钮置为可用----------
adoquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''进货单''';
Adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Button2.Enabled:=true;

//-----------检查用户是否具有销售单权限,如是,则将销售单按钮置为可用---------------
adoquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''销售单''';
Adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Button3.Enabled:=true;

//------------检查用户是否具有库存查询权限,如是,则将库存管理按钮置可用--------
adoquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''库存查询''';
Adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Button4.Enabled:=true;

//----------检查用户是否具有权限管理权限,如是,则将权限管理按钮置为可用---------
adoquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''权限管理''';
Adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Button5.Enabled:=true;

//---------检查用户是否具有商品资料维护权限,如是,则将资料维护按钮和商品资料维护菜单置为可用----------------------
adoquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''商品资料维护''';
Adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
begin
info.N2.Enabled:=true;
manage.Button1.Enabled:=true
end;

//-------检查用户是否具有供货商资料维护权限,如是,则将资料维护按钮和供货商资料维护菜单置可用------
adoquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''供货商资料维护''';
Adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
begin
info.N3.Enabled:=true;
manage.Button1.Enabled:=true
end;
aluyue 2008-04-17
  • 打赏
  • 举报
回复
Come late....
4楼正解
xu19834 2008-04-17
  • 打赏
  • 举报
回复


按照WANGXUELLD说的改了 不知道为什么出现如此的问题
xu19834 2008-04-17
  • 打赏
  • 举报
回复
WANGXUELLD代码
这一句if Adoquery2.fieldbyname('mima').Asstring:='' then
报错Type of expression must be BOOLEAN
wangxuelid 2008-04-17
  • 打赏
  • 举报
回复

begin
if( edit1.Text='') or (edit2.Text='') then
showmessage('用户名\密码不能为空!')
else
begin
query1.SQL.Clear;
query1.SQL.Add('select * from 登陆 where username='''+edit1.text+''' and password='''+edit2.text+'''');
query1.Open;
if query1.RecordCount <>0 then
begin
Form4.Hide;
Form1.show;
end
else
showmessage('密码错误或用户不存在!');
edit1.Text:='';
edit2.Text:='';
end;
end;

xu19834 2008-04-17
  • 打赏
  • 举报
回复
begin
if( edit1.Text='') or (edit2.Text='') then
showmessage('用户名\密码不能为空!')
else begin
query1.SQL.Clear;
query1.SQL.Add('select * from 登陆 where username=:1 and password=:2');
query1.ParamByName('1').Value:=edit1.Text;
query1.ParamByName('2').Value:=edit2.Text;
query1.Open;
if query1.RecordCount<>0 then
begin
Form4.Hide;
Form1.show;
end
else
showmessage('密码错误或用户不存在!');
edit1.Text:='';
edit2.Text:='';
end;
end;

上面是我看网站改的 但是执行出现问题!!!不能正确验证密码并且登陆
wangxuelid 2008-04-17
  • 打赏
  • 举报
回复

procedure TForm1.Button2Click(Sender: TObject);
begin
Adoquery2.Close;
AdoQuery2.SQL.Clear ;
Adoquery2.SQL.Add('select mima from table where mima='''+Edit1.text+''');
Adoquery2.open;
if Adoquery2.fieldbyname('mima').Asstring:='' then
begin
Showmessage('输入错误');
End
Else
Showmessage('输入正确');
end;

hsmserver 2008-04-17
  • 打赏
  • 举报
回复
所有用户名密码跟输入的是否正确验证 ?
不明白
你要的是
SELECT COUNT(*) FROM T WHERE 用户名=val AND 密码=val?

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧