我写了个用户管理的程序,但不知道应该怎么更改 用户的密码?
登陆代码是:
procedure Tyhdl.BitBtn1Click(Sender: TObject);
var f:boolean;
begin
f:=false;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select username,password from admin') ;
if not adoquery1.Active then
adoquery1.Open ;
adoquery1.First ;
inputtimes:=inputtimes+1;
while not adoquery1.Eof do
begin //*****while
if combobox1.Text =adoquery1.FieldValues['username'] then
begin //判密码是否正确
f:=true;
if edit2.text=adoquery1.FieldValues['password'] then
begin
User:= adoquery1.FieldValues['username'];
pass:= adoquery1.FieldValues['password'];
cx.show;
yhdl.hide;
end
else
if inputtimes>3 then
begin
showmessage('密码次数超过3次,你无权使用!') ;
application.Terminate;
end
else
begin
showmessage('用户密码输入错误!请再输入一次。');
edit2.SetFocus;
inputtimes:=inputtimes+1;
end;
end ; //判密码是否正确 结束
adoquery1.Next;
end; //****while结束
if f=false then
begin
showmessage('你没有注册,无权使用!');
application.Terminate ;
end;
adoquery1.Close ;
end;
procedure Tyhdl.FormActivate(Sender: TObject);
begin
inputtimes:=0;
combobox1.SetFocus ;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select username from admin');
if not adoquery1.Active then
adoquery1.Open ;
adoquery1.First ;
while not adoquery1.eof do
begin
combobox1.Items.Add(adoquery1.FieldValues['username']);
adoquery1.Next ;
end;
combobox1.ItemIndex :=0;
adoquery1.Close ;
end;该密码代码是:
procedure Tggmm.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
if edit1.text=''
then
showmessage('请输入你的新密码!!')
else if
edit2.Text <> edit1.Text
then
begin
showmessage('请重新输入您的确认码');
edit2.SetFocus;
end
else
begin
ADOQuery1.sql.add('update admin set password = ' + '"' + edit1.text +'"' );
ADOQuery1.open;
end;
end;是我SQL语法错误吗?望高手 解救!!
登陆代码是:
procedure Tyhdl.BitBtn1Click(Sender: TObject);
var f:boolean;
begin
f:=false;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('select username,password from admin') ;
if not adoquery1.Active then
adoquery1.Open ;
adoquery1.First ;
inputtimes:=inputtimes+1;
while not adoquery1.Eof do
begin //*****while
if combobox1.Text =adoquery1.FieldValues['username'] then
begin //判密码是否正确
f:=true;
if edit2.text=adoquery1.FieldValues['password'] then
begin
User:= adoquery1.FieldValues['username'];
pass:= adoquery1.FieldValues['password'];
cx.show;
yhdl.hide;
end
else
if inputtimes>3 then
begin
showmessage('密码次数超过3次,你无权使用!') ;
application.Terminate;
end
else
begin
showmessage('用户密码输入错误!请再输入一次。');
edit2.SetFocus;
inputtimes:=inputtimes+1;
end;
end ; //判密码是否正确 结束
adoquery1.Next;
end; //****while结束
if f=false then
begin
showmessage('你没有注册,无权使用!');
application.Terminate ;
end;
adoquery1.Close ;
end;
procedure Tyhdl.FormActivate(Sender: TObject);
begin
inputtimes:=0;
combobox1.SetFocus ;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select username from admin');
if not adoquery1.Active then
adoquery1.Open ;
adoquery1.First ;
while not adoquery1.eof do
begin
combobox1.Items.Add(adoquery1.FieldValues['username']);
adoquery1.Next ;
end;
combobox1.ItemIndex :=0;
adoquery1.Close ;
end;该密码代码是:
procedure Tggmm.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
if edit1.text=''
then
showmessage('请输入你的新密码!!')
else if
edit2.Text <> edit1.Text
then
begin
showmessage('请重新输入您的确认码');
edit2.SetFocus;
end
else
begin
ADOQuery1.sql.add('update admin set password = ' + '"' + edit1.text +'"' );
ADOQuery1.open;
end;
end;是我SQL语法错误吗?望高手 解救!!
解决方案 »
- DELPHI + ACCESS (OFFICE2003) 多表联问题
- ClientDataSet能不能新增一个临时列?
- QQ 大家来找茬 辅助工具
- 按钮怎么变颜色?
- 急招delphi程序员 工作地点哈尔滨
- 简单问题:TDateTime如何比较以及得到相差的minute
- 请问各位大侠如何创建一个动态的数组.急呀.
- 如何判断access数据库的表是不是空的?
- 关于外部函数调用的问题
- 关于delphi通过ole操作excel和word的问题
- 求一个用来启动IE工具条的BHO的代码!!把互联网翻了个遍也没找到DELPHI的版本!
- 散分~~~~,各位大侠,网络传输视频数据问题,只剩下最后如何接收数据、解压、显示了,实在不会,请帮忙~~
另外,没有结果集返回的,应该用ADOQuery1.ExecSQL,而不应该使用open
UPDATE yuju 的语法错误!
这个不对
ADOQuery1.sql.add('update admin set password = ' + '''' + edit1.text +'''' );应该是单引号,不是双引号
把sql语句这一段改成参数写法
ADOQuery1.sql.add('update admin set password = :#password' );
ADOQuery1.Parameters.ParamByName('#password').Value := edit1.text;
改成adoquery1.execsql;procedure Tggmm.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
if edit1.text=''
then
showmessage('请输入你的新密码!!')
else if
edit2.Text <> edit1.Text
then
begin
showmessage('请重新输入您的确认码');
edit2.SetFocus;
end
else
begin
ADOQuery1.sql.add('update admin set password = :#password' );
ADOQuery1.Parameters.ParamByName('#password').Value := edit1.text;
ADOQuery1.execsql;
end;
end;
begin
if edit1.text='' showmessage('请输入你的新密码!!')
else if edit2.Text <> edit1.Text then begin
showmessage('请重新输入您的确认码');
edit2.SetFocus;
end else begin
adoquery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.add('update admin set password = :#password' );
ADOQuery1.Parameters.ParamByName('#password').Value := edit1.text;
ADOQuery1.execsql;
end;
end;
更改密码无非就是更新数据库
应该是你的sql语句的问题
该说的楼上都说了
再搞不定
再来问吧
的回答已经比较详细了
Ausername :string; adoquery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.sql.add('update admin set password = :password where username=:username' );
ADOQuery1.Parameters.ParamByName('password').Value := edit1.text;
ADOQuery1.Parameters.ParamByName('username').Value := Ausername;
//最好加一条更新语句
ADOQuery1.execsql;