表中没有要删除的数据为何还提示删除成功?语句如下:
procedure Tsysadmin.Button3Click(Sender: TObject);
var query: TADOQuery;
begin
   if trim(edit1.Text)<>'' then begin
   query := TADOQuery.Create(nil);
   query.Connection := Data.Connection;
   query.Close;
   query.SQL.Clear;
   query.SQL.Text:='delete from 管理员 where  姓名='''+trim(edit1.Text)+'''';
   try
   query.ExecSQL;
   except
   MessageBox(handle, '删除错误', '提示',  mb_IconWarning + mb_Ok);
   exit;
   end;
   adoquery1.Close;
   adoquery1.SQL.Clear;
   adoquery1.SQL.Text:='select * from 管理员';
   adoquery1.Open;
   MessageBox(handle, '删除成功', '提示',  mb_IconWarning + mb_Ok);
   end;
end;

解决方案 »

  1.   

    这种写法在删除前并没有判断表中是否有要删除的数据,执行语句后肯定显示“删除成功”
    procedure Tsysadmin.Button3Click(Sender: TObject);
    var query: TADOQuery;
    begin
       if trim(edit1.Text)<>'' then begin
       query := TADOQuery.Create(nil);
       query.Connection := Data.Connection;
       adoquery1.Close;
       adoquery1.SQL.Clear;
       adoquery1.SQL.Text:='select 0 from 管理员 where  姓名='''+trim(edit1.Text)+'''';
       adoquery1.Open;
       if not eof then begin   
       query.Close;
       query.SQL.Clear;
       query.SQL.Text:='delete from 管理员 where  姓名='''+trim(edit1.Text)+'''';
       try
       query.ExecSQL;
       MessageBox(handle, '删除成功', '提示',  mb_IconWarning + mb_Ok);
       except
       MessageBox(handle, '删除错误', '提示',  mb_IconWarning + mb_Ok);
       exit;
       end;
       end else 
       MessageBox(handle, '没有', '提示',  mb_IconWarning + mb_Ok);
       end;
    end;