unit UnitPwd;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls;type
  TFormPwd = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    Button1: TButton;
    Button2: TButton;
    Database1: TDatabase;
    Query1: TQuery;
    DataSource1: TDataSource;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  FormPwd: TFormPwd;implementation{$R *.dfm}procedure TFormPwd.Button2Click(Sender: TObject);
begin
FormPwd.Close;
end;procedure TFormPwd.Button1Click(Sender: TObject);
var
 count:integer;
begin
  count:=0;
  if Edit3.Text=''then
  begin
    ShowMessage('请输入旧密码!');
    Edit3.SetFocus;
    Exit;
  end;
  if Edit4.Text=''then
  begin
    ShowMessage('请输入新密码!');
    Edit4.SetFocus;
    Exit;
   end;
   if Edit5.Text=''then
   begin
    ShowMessage('请再次输入新密码!');
    Edit5.SetFocus;
    Exit;
  end;
  
  if count<3 then
  begin
    self.Query1.close;
    self.Query1.sql.clear;
    self.Query1.sql.add('select * from OperInfo where ID='''+Edit2.Text+'''');
    self.Query1.open;
    if not self.Query1.FieldValues['Pwd'] = Edit3.Text then
    begin
      inc(count);
      ShowMessage('密码错误,请重新输入!');      Edit3.Text:='';
      Edit3.SetFocus;
      exit;
    end
    else
    begin
      if Edit4.Text<>Edit5.Text then
      begin
        SHowmessage('两次密码输入不一致,请重新输入!');        Edit4.Text:='';
        Edit5.Text:='';
        Edit4.SetFocus;
        Exit;      end else
      begin
        self.Query1.Edit;                          //
        self.Query1.FieldValues['Pwd']:=Edit4.Text;//这样的表达有错吗           self.Query1.Post;
      end;
    end;
  end
  else
  begin
    messagedlg('您已经登录失败超过3次,程序将终止', mtWarning, [mbok],0);
    close;
    application.Terminate;
  end;
end;end.

解决方案 »

  1.   

    if edit3.text='' then showmessage('不能为空');exit;
    if edit3.text<>原来的密码 then showmessage('原来密码错误);exit;
    if edit4.text<>edit5.text then showmessage('不一致);exit;
    if(trim(edit4.Text)='') then showmessage('新密码不能空);exit;
     sql:='update 表 set 密码='+''''+edit4.text+''''+
             ' where 用户名=你的用户名';
    感觉你写的有点乱,跟踪下吧
      

  2.   

    是我自己把Edit1写成Edit2,运行成功了,谢谢楼上