登陆代码错误 ( 积分: 20 )

  • 主题发起人 主题发起人 kutiny
  • 开始时间 开始时间
K

kutiny

Unregistered / Unconfirmed
GUEST, unregistred user!
用这个代码会发现: 用户名和密码会形成一对多的关系[:(]
不知道哪位大大会改啊?

if table1.Locate('name',edit1.Text,[])=false then
begin
i:=i+1;
ShowMessage('用户名或密码有误!');
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
end
else
begin
if table1.Locate('pass',edit2.Text,[])=false then//问题应该是出在这里
begin
i:=i+1;
ShowMessage('用户名或密码有误!');
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
end
else
begin
ShowMessage('登陆成功!!');
form2:=tform2.Create(self);
form2.show;
form1.Hide;
end;
end;
 
有一个想法:用一个DBEdit 显示查找到的用户名对应的密码,再与Edit2 进行比较
最后用个容器类的组件把 DBEdit 影藏起来.......不过界面要重做了,有点麻烦...
 
if table1.Locate('name',edit1.Text,[])=false then
begin
i:=i+1;
ShowMessage('用户名或密码有误!');
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
end
else
这里你执行了table1.Locate('name',edit1.Text,[])=那么游标已经定位到了这个登陆用户的name上了。所以你直接用这个比较if table1.fieldbyname('pass').asstring<>edit2.text then //密码不等 else 就等。就行了。注意name要唯一
 
自己拼凑一条sql语句发到数据库去查就是了,为什么一定要用table的匹配函数来找呢?
select * from t_xxx where (useName='abc')annd(usePass='cdf')
 
接受答案了,谢谢!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部