首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi7 中IF语句没有关问题却不执行,求指点

2012-05-06 
delphi7 中IF语句没问题却不执行,求指点高手们求教呀!!!我用delphi7做了一个登入界面,基本逻辑是,将输入的

delphi7 中IF语句没问题却不执行,求指点
高手们求教呀!!!
  我用delphi7做了一个登入界面,基本逻辑是,将输入的ID与密码跟SQL数据表中的ID和密码比对,若与SQL中的相等即可登入,否则不能登入。大妈如下,运行结果直接跳过了if,执行else ,代码是没有问题的。请高手们指点一下。感谢!!

procedure TForm1.Button1Click(Sender: TObject);
var
i:String;

begin

adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select password from user_table');
adoquery1.SQL.Add('where ID='''+edit1.text+'''');
adoquery1.Open;
Showmessage(adoQuery1.FieldByName('password').AsString);

i:=adoQuery1.FieldByName('password').AsString;

showmessage(i);
if(edit2.Text = i) then
form2.show

else showmessage('你的密码有误!');
end;
 

[解决办法]
加上Trim(edit2.Text),或许是有空格引起的。今天真头疼。
[解决办法]

探讨
這樣些雖然不是最好的,但也沒錯
showmessage(edit2.Text);仔細對比看,肯定與i不同

[解决办法]
将这行代码
if(edit2.Text = i) 
修改成如下试试
if(trim(edit2.Text) = trim(i))
[解决办法]
trim为去掉字符串两边的空格
比如:
s := ' abc ' //注意前面有空格,后面没有
用trim(s)后s的值等于'abc'

热点排行