就一个用户密码修改问题, Edit1 写(用户名),Edit2 写(旧密码) , Edit3 写(新密码), Edit4 确认一下(新密码)
代码:
if (edit3.Text=edit4.Text)and(edit4.Text <>'')and(edit2.Text <>'')and(edit3.Text <>'') then
begin
adoquery1.Close;
adoquery1.Prepared;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('select * from jluser where name =:name');
adoquery1.Parameters.ParamValues['name']:=trim(edit1.text);
adoquery1.Open;
if not ADOQuery1.RecordCount>0 then
begin
if adoquery1.FieldByName('pass').AsString=trim(edit2.text) then
begin
adoquery1.Close;
adoquery1.Prepared;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('update jluser set pass = '''+trim(edit4.Text)+''' where name =:name');
adoquery1.Parameters.ParamValues['name']:=trim(edit1.text);
adoquery1.ExecSQL;
showmessage('修改成功!!!');
end
else
showmessage('旧密码不正确!!!');
end;
end
else
showmessage('不能为空!'#13'或者两次新密码不正确!!!');
--------------------
结果我输入的旧密码不管正确和否 都说:旧密码不正确!!!,修改都是不成功.
大家帮我看看,具体哪错了?
超级小菜鸟谢谢!!!
代码:
if (edit3.Text=edit4.Text)and(edit4.Text <>'')and(edit2.Text <>'')and(edit3.Text <>'') then
begin
adoquery1.Close;
adoquery1.Prepared;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('select * from jluser where name =:name');
adoquery1.Parameters.ParamValues['name']:=trim(edit1.text);
adoquery1.Open;
if not ADOQuery1.RecordCount>0 then
begin
if adoquery1.FieldByName('pass').AsString=trim(edit2.text) then
begin
adoquery1.Close;
adoquery1.Prepared;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('update jluser set pass = '''+trim(edit4.Text)+''' where name =:name');
adoquery1.Parameters.ParamValues['name']:=trim(edit1.text);
adoquery1.ExecSQL;
showmessage('修改成功!!!');
end
else
showmessage('旧密码不正确!!!');
end;
end
else
showmessage('不能为空!'#13'或者两次新密码不正确!!!');
--------------------
结果我输入的旧密码不管正确和否 都说:旧密码不正确!!!,修改都是不成功.
大家帮我看看,具体哪错了?
超级小菜鸟谢谢!!!
试试
?????????????????????????RecordCount<=0才能执行下面的代码?而<=0时候,是没有数据的,后面的if 一定为否,所以会执行‘旧密码不正确!’
应该是 if ADOQuery1.RecordCount>0 then 吧?并且Edit1.Text是不是和用户名相同?还有,
adoquery1.Open;后,adoquery1.Last;然后再判断RecordCount.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
去掉not
if ADOQuery1.RecordCount>0 then
..
为什么不直接使用用户名和密码两个条件进行查找呢
直接就用'select * from jluser where name =:name and pass=:pass'语句进行查询
如果有结果则表示正确
否则错误