delphi 程序解疑

来源:百度知道 编辑:UC知道 时间:2024/06/26 03:15:32
procedure TForm1.Button1Click(Sender: TObject);
begin
sql:='select * from t_operate where o_name='+char(39);
sql:=sql+combobox1.Text +char(39);
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
adoquery1.Open;
if adoquery1.FieldByName('o_password').AsString =trim(edit1.Text) then
begin
form2.show;
end
else
showmessage('11111111');
end;
密码输入正确后,一直还是显示1111111111,请问各位高手是怎么回事啊???

那说明从数据库没有查询到 char(39)+combobox1.Text +char(39),

你可以跟踪一下传入adoquery1里的sql内容,然后在数据中执行以下这条语句,返回的结果应该也是空。

procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select * from t_operate where o_name='+'''+combobox1.Text +''');
adoquery1.Open;
if adoquery1.FieldByName('o_password').AsString =edit1.Text then
begin
form2.show;
end
else
showmessage('11111111');
end;

这里注意下细节,用户名和密码都是区分大小写的,必须完全匹配