我用adoquery datasource dbgrid选择数据库记录再显示数据,现在要实现用鼠标选中一条记录,然后点击一个“删除”按钮,删除数据库的该条记录,并且刷新dbgrid中的数据

解决方案 »

  1.   

    在form中定义一个form内的变量(用来存储你删除的这条纪录的,你这张表有几个关键字就要定义几个变量,假设有一个关键字prod_id)
    var 
    vprod_id:sting;在dbgrid的click事件中写
    vprod_id:=Trim(dbgrid1.Fields[0].AsString);////假设第一列是关键字
    在删除按钮中写
    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.sql.add( ' delete from table where prod_id='''+vprod_id+''' ');
    adoquery2.exesql;ok了。
      

  2.   

    if ADOQry.RecordCount>=1 then
    begin
      ADOQry.Delete;
      ADOQry.Last;
      
      ADOQry.Close;
      ADOQry.SQL.Clear;
      ADOQry.SQL.Add('Select * from table');
      ADOQry.Open;
      ADOQry.Last;
      ADOQry.First;
    end;
      

  3.   

    ADOQry.Delete就可,最多加个刷新命令
      

  4.   

    if not adoquery.isEmpty then
      adoquery.delete;
    adoquery.Refresh;
      

  5.   

    ADOQry.Delete你怎么知道删除的是哪行阿?人家是在另外一各独立的按钮中执行删除操作
      

  6.   

    if not adoquery.isEmpty then
      adoquery.delete;
      

  7.   

    现在要实现用鼠标选中一条记录,然后点击一个“删除”按钮,删除数据库的该条记录,
    同意ncwuhh(愤怒中.....下辈子也要当官)的看法,
    删除的当然是当前选中记录。
      

  8.   

    dbgrid.datascource.dataset.delete;就可以了。
      

  9.   

    如果你的DBGRID是缓冲数据,那么,你可以同时选择多条来删除,最后 applyupdates ( 0 ) 就可以了。
      

  10.   

    if not adoquery1.eof then 
    adoquery1.delete;
      

  11.   

    With DBGridEh1.DataSource.DataSet do
            for i:=0 to DBGridEh1.SelectedRows.Count - 1 do
            begin
                GotoBook(pointer(DBGridEh1.SelectedRows.Items[i]));
                if Pos(Trim(Fields[0].AsString), strCode) = 0 then
                    strCode := strCode + '''' + Trim(Fields[0].AsString) + ''',';
            end;
        strCode := Copy(strCode, 1, Length(strCode) - 1);
        if strCode = '' then
            strCode := '''''';
        //删除的sql语句
        strSql := 'Delete from report_uploaddata Where cUnitCode in (' + strCode + ')';
      

  12.   

    if not adoquery1.eof then 
    adoquery1.delete;自动刷新