rt,我在做mis时候,想做一个用户身份确认的登录窗口,就是输入用户名称和密码然后去interbase数据库取出数据验证用户身份,应该说是比较简单的代码,我也全部是按照网上的源代码敲的,可是程序运行时候,尽管我每次输入的用户名称和密码都是正确地,可是程序总说我得密码输入有错误,我想半天也想不通是怎么回事,希望高手帮我看看,解决问题后立即给分!!
我得数据库用的是interbase,其中的用户身份表有两个字段id,passwd,他们都是char型的,我用一个名称为ibt_user_pass的数据表组件连接该表,登录按钮代码如下,谁能看看哪里有问题,谢谢!!
try
datamodu.IBD_SELECT.Connected:=true;
ibt_user_pass.Filter :='ID='''+edit1.Text+'''';
ibt_user_pass.Filtered :=true;
ibt_user_pass.Active:=true;
except
application.MessageBox('请与系统管理员联系.','数据库连接错误',mb_ok);
application.Terminate;
end;
if ibt_user_pass.RecordCount=1 then
begin
if ibt_user_pass.FieldByName('passwd').AsString=edit2.Text then
form_student_login.Hide
else
application.MessageBox('请确认密码是否正确!','密码不匹配',mb_ok);
end else application.MessageBox('请确认用户名是否正确!','无此用户',mb_ok);
我得数据库用的是interbase,其中的用户身份表有两个字段id,passwd,他们都是char型的,我用一个名称为ibt_user_pass的数据表组件连接该表,登录按钮代码如下,谁能看看哪里有问题,谢谢!!
try
datamodu.IBD_SELECT.Connected:=true;
ibt_user_pass.Filter :='ID='''+edit1.Text+'''';
ibt_user_pass.Filtered :=true;
ibt_user_pass.Active:=true;
except
application.MessageBox('请与系统管理员联系.','数据库连接错误',mb_ok);
application.Terminate;
end;
if ibt_user_pass.RecordCount=1 then
begin
if ibt_user_pass.FieldByName('passwd').AsString=edit2.Text then
form_student_login.Hide
else
application.MessageBox('请确认密码是否正确!','密码不匹配',mb_ok);
end else application.MessageBox('请确认用户名是否正确!','无此用户',mb_ok);
上面的UpperCase是将字符串都转换为大写,trim是去掉字符串中的空格
stuwe(胜)两为大哥说的比较有说服力,用trim把ibt_user_pass.FieldByName('passwd').AsString 括起来以后和edit2的值旧一样了,程序也能顺利识别密码了,原来是char的类型造成的原因啊,可是如果密码可以使用空格的话,又该如何写代码呢??