我将DBGrid设为可以多行选择,但我要怎样才能知道选择时选了哪些记录呢?

解决方案 »

  1.   

    没有办法,你只好用一个循环了。判断dbgrid哪几行被选中。
      

  2.   

    for i := 0 to DBGrid1.SelectedRows.Count - 1 do
    begin
      //利用书签遍历各记录
    end ;
      

  3.   

    Screen.Cursor:=CrHourGlass; 
    if not AdoDataSet2.Active then  AdoDataSet2.Active := True;
    AdoDataSet2.DisableControls;  
    for I := 0 to DBGrid1.SelectedRows.Count - 1 do
    begin
      ADODataSet1.GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
      AdoDataSet2.Append;
      AdoDataSet2.FieldByName('CHARGE_ITEM_NAME').AsString :=  ADODataSet1.FieldByName('RES_NAME').AsString;
            AdoDataSet2.FieldByName('RES_CODE').AsString := ADODataSet1.FieldByName('RES_CODE').AsString;
            AdoDataSet2.FieldByName('CHARGE_ITEM_PRICE').AsCurrency := ADODataSet1.FieldByName('RES_SALE_PRICE').AsCurrency;
            AdoDataSet2.FieldByName('CHARGE_ITEM_SL').AsFloat := 1;
            AdoDataSet2.Post;
          end; //for i
          try
            AdoDataSet2.Refresh;
          except
            AdoDataSet2.Close;
            AdoDataSet2.Open;
          end;
      

  4.   

    hmily1688(混在石家庄)德就能搞定
      

  5.   

    将DBBRID的多选行一次删除:var
      tempBookMark : TbookMark;
    begin
             If dbgrid1.SelectedRows.Count > 1 Then s := '真的要删除这些记录?'
             If application.MessageBox(pchar(s), 'CVSC--多媒体光盘检索播放', mb_iconinformation + mb_YesNo) = IdYes Then
                Begin
                   i := 0;
                   DBGrid1.Datasource.Dataset.DisableControls;
                   While i <= dbgrid1.SelectedRows.Count - 1 Do
                      Begin
                         DBGrid1.Datasource.Dataset.Book := dbgrid1.SelectedRows.Items[i];  //重要的在这里,取得BOOKMARK
                         TempBook := DBGrid1.Datasource.Dataset.GetBook;
                         DBGrid1.Datasource.Dataset.GotoBook(TempBook);  
                         qry_del.ParamByName('param1').AsInteger := Dbgrid1.DataSource.DataSet.fieldbyname('id').AsInteger;
                         qry_del.Prepare;  
                         qry_del.ExecSQL;
                         DBGrid1.Datasource.Dataset.FreeBook(TempBook);  //释放BOOKMARK
                         inc(i); //下一个选择记录
                      End;
                   DBGrid1.Datasource.Dataset.EnableControls;
                End;
    end;