如何在DBGrid里选择多项纪录并删除?急用,最好写详细点。50分相送!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
    begin  for i := 0 to DBGrid1.SelectedRows.Count - 1 do
      begin
        DBGrid1.DataSource.DataSet.GotoBook(Pointer(DBGrid1.SelectedRows[i]));
        DBGrid1.DataSource.DataSet.Delete;
      end;
    end;
      

  2.   

    删除后加一句:DBGrid1.SelectedRows.Clear
      

  3.   

    我在代码编辑其中这一句无法完成
    DBGrid1.DataSource.DataSet.GotoBook(Pointer(DBGrid1.SelectedRows[i]));
    SelectedRows是一个TBooklist类型,不能有[i]阿
    是不是还要引用什么单元或者做什么定义??
      

  4.   

    1.dbgrid 的dgmultiselect设为true
    2.  
    var
       BookList:TBookList;         
       Book:TBookStr;
       i:integer;
    begin
       Book:=dataset.Book;
       for I := 0 to BookList.Count - 1 do begin
          dataset.Book := BookList[I];
          query.close;
          query.sql.clear;
          query.sql.add('delete ....');
          query.execute;
       end;
       dateset.Book := Book;
    end
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,rowcount : Integer;
    begin
      rowcount := DBGrid1.SelectedRows.Count;
      with ADOQuery1 do
      begin
        First;
        for i := 0 to rowcount - 1 do
        begin
          GotoBook(pointer(DBGrid1.SelectedRows.items[i]));
          Delete;
        end;
      end;
    end;
      

  6.   

    你首先要将dbgrid 的dgmultiselect设为true,让它支持多选,然后才能使用 DBGrid1.SelectedRows.Count 来做循环次数来删除
      

  7.   

    我在代码编辑其中这一句无法完成
    DBGrid1.DataSource.DataSet.GotoBook(Pointer(DBGrid1.SelectedRows[i]));
    SelectedRows是一个TBooklist类型,不能有[i]阿
    是不是还要引用什么单元或者做什么定义??的确DBGrid1.DataSource.DataSet.GotoBook(Pointer(DBGrid1.SelectedRows[i]));有问题:List index out of bounds();学习