delphi7 中IF语句没有关问题却不执行,求指点
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),或许是有空格引起的。今天真头疼。
------解决方案--------------------
------解决方案--------------------
将这行代码
if(edit2.Text = i)
修改成如下试试
if(trim(edit2.Text) = trim(i))
------解决方案--------------------
trim为去掉字符串两边的空格
比如:
s := ' abc ' //注意前面有空格,后面没有
用trim(s)后s的值等于'abc'
高手们求教呀!!!
我用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),或许是有空格引起的。今天真头疼。
------解决方案--------------------
------解决方案--------------------
将这行代码
if(edit2.Text = i)
修改成如下试试
if(trim(edit2.Text) = trim(i))
------解决方案--------------------
trim为去掉字符串两边的空格
比如:
s := ' abc ' //注意前面有空格,后面没有
用trim(s)后s的值等于'abc'