能帮看下下面这段代码哪里出错么 delphi,做的是密码修改 50

能帮看下这段代码哪里出错么?是delphi7的,做的是修改密码,代码是从网上找到改的,但是运行是出现错误。弹出对话框的错误是:‘acomponentnanedlabel1... 能帮看下这段代码哪里出错么? 是delphi7的,做的是修改密码,代码是从网上找到改的,但是运行是出现错误。
弹出对话框的错误是:‘a component naned label1 already exists’

unit UserPwdSetup_Unit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;

type
TfrmUserPwdSetup = class(TForm)
btnOK: TButton;
btnCancel: TButton;
edtOldPwd: TEdit;
edtNewPwd: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edtNewPwd2: TEdit;
Database1: TDatabase;
Query1: TQuery;
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmUserPwdSetup: TfrmUserPwdSetup;

implementation
{$R *.dfm}

procedure TfrmUserPwdSetup.btnOKClick(Sender: TObject);
begin
if Trim(edtNewPwd.Text)<>Trim(edtNewPwd2.Text) then
begin
showmessage('新密码不一致!');
end
else
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select USERPWD from USERS');
query1.SQL.Add('USERPWD='+''''+trim(edtOldPwd.Text)+'''');
query1.Open;
if ((query1.RecordCount<>1) or (edtOldPwd.Text<>Query1.FieldValues['USERPWD'])) then
begin
showmessage('口令不对,请检查!');
end
else
begin
query1.Edit;
query1.FieldValues['USERPWD']:=edtNewPwd.Text;
query1.Post;
query1.Close;
showmessage('更改口令成功');
close;
end;
end;

end;
end.
展开
 我来答
己闻楣Sx
2011-05-07 · TA获得超过1935个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:903万
展开全部
问题不止一处,主要有两个:
1、检查旧密码的query之SQL命令不对,第二次add的命令串中少了WHERE,导致SQL命令送到服务器后语法检查通不过;
2、修改密码应该发的是UPDATE命令,采用query+SELECT这种只读数据集是不行的,应该用TTable,或者修改query的SQL命令为update;
以上两个问题都不会报你说的错,你的错误可能在于自行在界面上拖拽了控件,delphi会自行增加若干行程序,而你又拷贝粘贴了人家的程序代码,导致某些控件和代码内在的关联被破坏了。建议系统地学习一番,如此急于求成并非正途。
jiaosa08
2011-05-07 · TA获得超过138个赞
知道答主
回答量:459
采纳率:0%
帮助的人:0
展开全部
你可以把密码获取出来。Showmessage(Fieldbyname(
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抱抱的爸爸
2011-05-07 · 超过24用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:54.1万
展开全部
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select username,USERPWD from USERS ');
query1.SQL.Add(' where USERNAME=:a and USERPWD=:b);
query1.params.parambyname('a').value:=?????;//自己添
query1.params.parambyname('b').value:=trim(edtOldPwd.Text);
query1.Open;
修改密码必须用户名和密码一起检索。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式