我在SQLServer2000中表中有个用户密码表,有三个属性:ID,PASSWD和AUTHORITY
他们都为CHAR类型,在登陆界面上有一个T_user通过ADOConnection连接到数据库表中,代码如下:
if MD.T_user.RecordCount=1 then begin
if MD.T_user.FieldByName('PASSWD').AsString=i_passwd.Text then
begin
if MD.T_user.FieldByName('AUTHORITY').AsString='1' then
begin
Form1.Hide;
liu.show;
end
else
Application.MessageBox('请选择合适的用户!','用户权限错误',MB_OK);
end
else
Application.MessageBox('请确认密码','密码不匹配',MB_OK);
end
else
Application.MessageBox('请确认用户名是否正确!','无此用户',MB_OK);
end;
按理说数据库是CHAR,在界面输入是应该没问题,可我每次运行时不能登陆(只要用户名正确,无论输入什么密码,即使是正确的,也提示密码错误。如果用户名不正确,还可以提示),我把数据库里的数据类型都改为INT型后,就可以登陆了。不知道是CHAR时不能登陆是错在哪里?还请高手指教!!
他们都为CHAR类型,在登陆界面上有一个T_user通过ADOConnection连接到数据库表中,代码如下:
if MD.T_user.RecordCount=1 then begin
if MD.T_user.FieldByName('PASSWD').AsString=i_passwd.Text then
begin
if MD.T_user.FieldByName('AUTHORITY').AsString='1' then
begin
Form1.Hide;
liu.show;
end
else
Application.MessageBox('请选择合适的用户!','用户权限错误',MB_OK);
end
else
Application.MessageBox('请确认密码','密码不匹配',MB_OK);
end
else
Application.MessageBox('请确认用户名是否正确!','无此用户',MB_OK);
end;
按理说数据库是CHAR,在界面输入是应该没问题,可我每次运行时不能登陆(只要用户名正确,无论输入什么密码,即使是正确的,也提示密码错误。如果用户名不正确,还可以提示),我把数据库里的数据类型都改为INT型后,就可以登陆了。不知道是CHAR时不能登陆是错在哪里?还请高手指教!!
一般要去掉前后空格用Trim、Trimleft、TrimRight,当然,密码是空格也应允许,所以,密码框还是不能去掉空格的。
VarChar然后用Trim去掉前后空格
楼上的几位说的都不错,用了trim后就搞定了
think you!!!