也就是实现DBNavigator1的删除按钮一样的功能
在DBGrid中选中一条记录后,点击“删除”按钮即可删除此条记录,请问按钮代码如何写?

解决方案 »

  1.   

    先定义一个全局变量
    var 
    vid:string;然后再dbgrid的DBGrid1CellClick事件中写入下代码procedure Tfmmjandprodview2.DBGrid1CellClick(Column: TColumn);
    beginvid:=Trim(DBgrid.fields[1].value.ASstring );end;
    然后在删除前点dbgrid中的那条记录,删除按钮button或者bitbtn的Click事件写如下代码query.close;
    query.sql.clear;
    query.sql.add(' delete from table where id ='''+vid+''' ');
    query.ExecSQL;
      

  2.   

    除了使用SQL查询外,还有没有其他方法定位所选的记录呢?
      

  3.   

    if application.MessageBox('真的要删除此条记录吗?','提示',mb_iconquestion or mb_okcancel) <> idok then exit
    else
    dbgrid1.DataSource.DataSet.Delete;
      

  4.   

    DBGrid1.DataSource.DataSet.Delete
    使用这句话后,每次都删除第一条记录,而不是删除所选的记录!还有更好的办法吗?
      

  5.   

    不会吧,我这可以删除所选的记录阿。你的DBGrid.Options.dgRowSelect属性设成true了吗?procedure TForm1.Button1Click(Sender: TObject);
    begin
         DBGrid1.DataSource.DataSet.Delete
    end;
      

  6.   

    明白了,我在按钮前面加了两句: 
     ADOData_phone.Active:=false;
      ADOData_phone.Active:=true;
    导致每次都删除的是第一条记录,去掉这两句就OK了,不过题外话为什么加入这两句后每次都删除的是第一条记录呢?能告诉我吗?
      

  7.   

    IF ADOQUERY1.ISEMPTY THEN
     ADOQUERY1.DELETE;
      

  8.   

    在BUTTON上写ADOQUERY1.DELETE;
                ADOQUERY1.POST;
    行了