永发信息网

delphi修改密码代码出错

答案:4  悬赏:10  手机版
解决时间 2021-05-07 06:28
  • 提问者网友:人傍凄凉立暮秋
  • 2021-05-06 07:52

with DataModule2.ADOQuery1 do
begin
close;
sql.Add('select * from users where name = :n and password = :p');
open;
if FieldByName('n').AsString = edit5.Text then
begin
if FieldByName('p').AsString = edit6.Text then
begin
if edit7.Text = edit8.Text then
begin
edit;
FieldByName('password').AsString := edit8.Text;
Post;
showmessage('密码修改成功!');
end else showmessage('两次新密码不一直');
end else showmessage('旧密码错误')
end else showmessage('账号错误');
end;

哪里出错了???

最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-05-06 08:55

你的指针没有向下移,当然一直偶读是修改第一条记录了,应该这样ADOTable1.next,来下移指针,这样就可以修改下一条了。

全部回答
  • 1楼网友:掌灯师
  • 2021-05-06 10:47

修改前没有edit,修改后没有post

在open;后加上

if RecordCount >1 then

begin

first ;

edit;

//这里插入原来的代码。

post;

end;

  • 2楼网友:三千妖杀
  • 2021-05-06 09:25

DataModule2.ADOQuery1.close; //

DataModule2.ADOQuery1.sql.clear; DataModule2.ADOQuery1.sql.Add('select * from users where name = :n and password = :p');// DataModule2.ADOQuery1.Parameters.ParamByName('n').Value := edit5.Text;// DataModule2.ADOQuery1.Parameters.ParamByName('p').Value := edit6.Text;// DataModule2.ADOQuery1.open;//

  • 3楼网友:青灯有味
  • 2021-05-06 09:10

with ADOQuery1 do begin close; sql.Add('select * from users where name = :n and password = :p'); open; //if FieldByName('n').AsString = edit5.Text then if Parameters.ParamByName('n').value = edit5.Text then begin //if FieldByName('p').AsString = edit6.Text then if Parameters.ParamByName('p').value = edit6.Text then begin if edit7.Text = edit8.Text then begin edit; FieldByName('password').AsString := edit8.Text; Post; showmessage('密码修改成功!'); end else showmessage('两次新密码不一直'); end else showmessage('旧密码错误') end else showmessage('账号错误'); end;

请注意此处你写错了

//if FieldByName('n').AsString = edit5.Text then if Parameters.ParamByName('n').value = edit5.Text then

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯