密码修改窗口有三个edit ,一个输入原密码,一个新密码,另一个确实新密码
procedure TSepfrm.BitBtn1Click(Sender: TObject);
var m,n,k:string;
begin
ADoquery1.Close ;
ADoquery1.SQL.Clear ;
m:='select * from 管理员 where username = '''+login.edit1.Text+'''';
ADoquery1.SQL.Add(m);
ADoquery1.Open;
k:=ADOQuery1.FieldByName('password').AsString;
if adoquery1.RecordCount<>0 then
begin
if k=edit1.Text then
begin
if edit2.Text=edit3.Text then
begin
n:='update 管理员 set password=:field1 where username='+Quotedstr(login.edit1.text);
Adoquery2.Close;
Adoquery2.SQL.Clear;
Adoquery2 .SQL.Add(n);
ADOQuery1.Parameters.ParamByName('Field1').Value :=edit2.Text;
Adoquery2.ExecSQL;
showmessage('更改密码成功');
end
else
showmessage('请重新确认密码');
end
else
showmessage('旧密码错误,请重输');
end;
end;
procedure TSepfrm.BitBtn1Click(Sender: TObject);
var m,n,k:string;
begin
ADoquery1.Close ;
ADoquery1.SQL.Clear ;
m:='select * from 管理员 where username = '''+login.edit1.Text+'''';
ADoquery1.SQL.Add(m);
ADoquery1.Open;
k:=ADOQuery1.FieldByName('password').AsString;
if adoquery1.RecordCount<>0 then
begin
if k=edit1.Text then
begin
if edit2.Text=edit3.Text then
begin
n:='update 管理员 set password=:field1 where username='+Quotedstr(login.edit1.text);
Adoquery2.Close;
Adoquery2.SQL.Clear;
Adoquery2 .SQL.Add(n);
ADOQuery1.Parameters.ParamByName('Field1').Value :=edit2.Text;
Adoquery2.ExecSQL;
showmessage('更改密码成功');
end
else
showmessage('请重新确认密码');
end
else
showmessage('旧密码错误,请重输');
end;
end;
解决方案 »
- 能不能將繁體的DBF文件轉換為簡體的DBF文件
- 图如何存到Oralce中?
- idTcpServer与众多idTcpClient
- 关于视图在ADoquery中的读取和视图在dbgrid中的显示?
- 如何使内存中的值锁定
- 请高手指教!(关于连接sql2000问题)
- “女生”等软件由于没有使用DELPHI的窗体,文件很小!
- 如何把opendialog和savedialog的选定路径付给copyfile函数的scrfile和objfile?
- midal和com+是一回事吗?请大虾详细讲解。
- 求TdxDBTreeView控件查询权限代码,效果图如下
- 各位老师 救救我呵,我的delphi确程序 编译没有错,但运行出错
- C 变量定义转 Pascal 的问题请教
procedure TSepfrm.BitBtn1Click(Sender: TObject);
var m,n,k:string;
begin
ADoquery1.Close ;
ADoquery1.SQL.Clear ;
m:='select * from 管理员 where username = '''+login.edit1.Text+'''';
ADoquery1.SQL.Add(m);
ADoquery1.Open;
if adoquery1.RecordCount <>0 then
begin
k:=ADOQuery1.FieldByName('password').AsString; //这句放到这里试试
if k=edit1.Text then
begin
if edit2.Text=edit3.Text then
begin
n:='update 管理员 set password=:field1 where username='+Quotedstr(login.edit1.text);
Adoquery2.Close;
Adoquery2.SQL.Clear;
Adoquery2 .SQL.Add(n);
ADOQuery1.Parameters.ParamByName('Field1').Value :=edit2.Text;
Adoquery2.ExecSQL;
showmessage('更改密码成功');
end
else
showmessage('请重新确认密码');
end
else
showmessage('旧密码错误,请重输');
end;
end;
edit1.text是username
var n,k:string;
begin
ADoquery1.active:= false;
ADoquery1.SQL.Clear;
ADoquery1.SQL.text:='select * from 管理员 where username = '''+trim(login.edit1.Text)+'''';
ADoquery1.active:= true;
if adoquery1.recordcount = 0 then exit;
k:= ADOQuery1.FieldByName('password').AsString; if k=edit1.Text then
begin
if edit2.Text=edit3.Text then
begin
adoquery2.active:= false;
Adoquery2.SQL.Clear;
adoquery2.sql.text:='update 管理员 set password='''+edit2.text+
''' where username= '''+login.edit1.text+'''';
Adoquery2.ExecSQL;
showmessage('更改密码成功');
end
else
showmessage('请重新确认密码');
end
else
showmessage('旧密码错误,请重输');
end;
var n,k:string;
begin
ADoquery1.active:= false;
ADoquery1.SQL.Clear;
ADoquery1.SQL.text:='select * from 管理员 where username = '''+trim(login.edit1.Text)+'''';
ADoquery1.active:= true;
if adoquery1.recordcount = 0 then exit;
k:= ADOQuery1.FieldByName('password').AsString;
adouery1.active:= false; // 加这个
if k=edit1.Text then
begin
if edit2.Text=edit3.Text then
begin
adoquery2.active:= false;
Adoquery2.SQL.Clear;
adoquery2.sql.text:='update 管理员 set password='''+edit2.text+
''' where username= '''+login.edit1.text+'''';
Adoquery2.ExecSQL;
showmessage('更改密码成功');
end
else
showmessage('请重新确认密码');
end
else
showmessage('旧密码错误,请重输');
end;
我的login是主窗体运行动态创建的,
当然要用这个变量, TSepfrm和Tlogin肯定要引用主窗口,再一开始登入成功时,就给un和pw赋值到你的TSepfrm时候,就不用那么多ado控件了修改密码的button事件里:
procedure TChangePWFrm.cxButton1Click(Sender: TObject);
begin
if (cxMaskEdit1.Text <> MainFrm.PW) then //这里是主窗的pw变量
begin
Application.MessageBox('原密码错误!','错误信息',64);
cxMaskEdit1.SelectAll;
cxMaskEdit1.SetFocus;
exit;
end;
if (trim(cxMaskEdit2.Text) = '') or (trim(cxMaskEdit3.Text) = '') then
begin
Application.MessageBox('不允许空密码!','错误信息',64);
cxMaskEdit2.Clear;
cxMaskEdit3.Clear;
cxMaskEdit2.SetFocus;
exit;
end;
if (cxMaskEdit2.Text <> cxMaskEdit3.Text) then
begin
Application.MessageBox('新密码无法确认!','错误信息',64);
cxMaskEdit2.Clear;
cxMaskEdit3.Clear;
cxMaskEdit2.SetFocus;
exit;
end;
try
adoquery2.active:= false;
Adoquery2.SQL.Clear;
adoquery2.sql.text:='update 管理员 set password='''+cxMaskEdit2.Tex+
''' where username= '''+un+'''';
Adoquery2.ExecSQL;
showmessage('完成修改');
except
showmessage('有错误');
end;
end;