各位大虾:
您们好
我刚学习delphi一个月
然后做了一个登录和修改密码,是用数据库SQL Server做的
结果修改密码不成功
代码如下:
登录的是
Talogo = class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
...
with adoquery1 do
begin //1
close;
sql.clear;
sql.add('select * from admins where n=:n and p=:p ');
parameters.ParamByName('n').Value:=trim(combobox1.Text);
parameters.ParamByName('p').Value:=trim(edit1.Text);
OPEN;
if combobox1.Text ='' then
begin //2
application.MessageBox('请输入用户名','提示信息',64);
combobox1.SetFocus;
exit;
end; //2
if edit1.Text ='' then
begin //3
application.MessageBox('请输入密码','提示信息',64);
edit1.SetFocus;
exit;
end; //3 end; //1
if adoquery1.RecordCount<>0 then
begin //4
username:=combobox1.Text;
password:=edit1.Text;
amain.show;//登录正确后显示的窗体
self.Hide;
if adoquery1.FieldByName('q').AsString='管理' then
id :='管理'
else id :='操作';
username :=adoquery1.fieldbyname('n').asstring;
password :=adoquery1.fieldbyname('p').asstring;
end //4
else
application.MessageBox('输入的用户名或密码错误','提示信息',64);
except
application.MessageBox('登陆失败','提示信息',64);
修改密码窗体组件简单
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
..
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from admins ');
parameters.parambyname('p').value:=UserOldPass ;
parameters.parambyname('n').value:=username ;
open;
if(Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') then
begin//0
if(UserOldPass <> Edit1.Text) then
begin //3
ShowMessage('原密码错误');
Edit1.text:='';
Edit1.SetFocus;
end; //3
if(Edit2.Text <> Edit3.Text) then
begin //4
ShowMessage('两次输入密码不同');
edit2.text:='';
edit3.text:='';
Edit2.SetFocus;
end; //4
if(UserOldPass = Edit1.Text) and (Edit2.Text = Edit3.Text) then
begin //5
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update admins set p ="'+Edit2.Text+'" where n ="'+username+'" ');
ADOQuery1.ExecSQL;
ShowMessage('修改密码成功');
form11.Close;
end;
end //1
else
ShowMessage('您没有填写密码');
总是不成功
说什么定义空的
不明白说的是什么
也 看不懂什么意思
求各位帮我一下
您们好
我刚学习delphi一个月
然后做了一个登录和修改密码,是用数据库SQL Server做的
结果修改密码不成功
代码如下:
登录的是
Talogo = class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
...
with adoquery1 do
begin //1
close;
sql.clear;
sql.add('select * from admins where n=:n and p=:p ');
parameters.ParamByName('n').Value:=trim(combobox1.Text);
parameters.ParamByName('p').Value:=trim(edit1.Text);
OPEN;
if combobox1.Text ='' then
begin //2
application.MessageBox('请输入用户名','提示信息',64);
combobox1.SetFocus;
exit;
end; //2
if edit1.Text ='' then
begin //3
application.MessageBox('请输入密码','提示信息',64);
edit1.SetFocus;
exit;
end; //3 end; //1
if adoquery1.RecordCount<>0 then
begin //4
username:=combobox1.Text;
password:=edit1.Text;
amain.show;//登录正确后显示的窗体
self.Hide;
if adoquery1.FieldByName('q').AsString='管理' then
id :='管理'
else id :='操作';
username :=adoquery1.fieldbyname('n').asstring;
password :=adoquery1.fieldbyname('p').asstring;
end //4
else
application.MessageBox('输入的用户名或密码错误','提示信息',64);
except
application.MessageBox('登陆失败','提示信息',64);
修改密码窗体组件简单
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
..
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from admins ');
parameters.parambyname('p').value:=UserOldPass ;
parameters.parambyname('n').value:=username ;
open;
if(Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') then
begin//0
if(UserOldPass <> Edit1.Text) then
begin //3
ShowMessage('原密码错误');
Edit1.text:='';
Edit1.SetFocus;
end; //3
if(Edit2.Text <> Edit3.Text) then
begin //4
ShowMessage('两次输入密码不同');
edit2.text:='';
edit3.text:='';
Edit2.SetFocus;
end; //4
if(UserOldPass = Edit1.Text) and (Edit2.Text = Edit3.Text) then
begin //5
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update admins set p ="'+Edit2.Text+'" where n ="'+username+'" ');
ADOQuery1.ExecSQL;
ShowMessage('修改密码成功');
form11.Close;
end;
end //1
else
ShowMessage('您没有填写密码');
总是不成功
说什么定义空的
不明白说的是什么
也 看不懂什么意思
求各位帮我一下
update admins set p ='''+Edit2.Text+''' where n ='''+username+''''
改一下试试
p是表中的密码列提示是p无效
或者'edit1.text'无效
你p姓名列和n密码列是不通义张表的。还是在n密码那张表里面只有一个员工TD而没有姓名??