在dxDBGrid中选定若干行记录后,怎样把所选的记录读取出来。
for i:=0 to dxDBGird.selectedCount-1 do
begin
  ...
end;
上面的代码要怎样写,才能读出所选定记录的字段信息。

解决方案 »

  1.   

    dxDBGrid1.FocusedNode,当前选中的结点。
    dxDBGrid1.FocusedNode.Values[1]选中结点的第二列的内容。
      

  2.   

    利用dxDBGird.selected[I]可以提取出所要的记录
      

  3.   

    dwf3110() :没有selected[I]的属性,只有SelectedRows[I],但显示出来的是字符“|”,我的代码如下:
    for i:=0 to dxDBGird.selectedCount-1 do
    begin
       showmessage(dxDBGrid1.SelectedRows[i]);
    end;
    请大家帮忙修改,怎样才能提取选定的记录数据。
      

  4.   

    建议楼主要多自己动手
    别人只能指点你一下
    象类似的问题,多试几下,看看帮助,看看DEMO就可以解决了
      

  5.   

    DBGridEh使用Book可以搞定,不知会不会一样
    http://www.delphibbs.com/delphibbs/dispq.asp?lid=2217710来自:iamfish, 时间:2003-10-8 20:20:00, ID:2219482 | 编辑
    自己搞定了.
    The following example copies the selected rows in a db grid to a list box.procedure TForm1.Button1Click(Sender: TObject);
    var
      i, j: Integer;
      s: string;
    begin
      if DBGrid1.SelectedRows.Count>0 then
        with DBGrid1.DataSource.DataSet do
          for i:=0 to DBGrid1.SelectedRows.Count-1 do
          begin
            GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
            for j := 0 to FieldCount-1 do
            begin          if (j>0) then s:=s+', ';
              s:=s+Fields[j].AsString;
            end;
            Listbox1.Items.Add(s);
            s:= '';
          end;
    end;  
      

  6.   

    var
      I,J: Integer;
      sTemp: String;
      mkTemp: TBookMark;
    begin
      for I := 0 to dxDBGrid1.SelectedCount - 1 do
      begin
        sTemp := '';
        mkTemp := TBookMark(dxDBGrid1.SelectedRows[I]);
        dxDBGrid1.DataSource.DataSet.GotoBook(mkTemp);
        for J := 0 to dxDBGrid1.DataSource.DataSet.FieldCount - 1 do
        begin
          sTemp := sTemp + dxDBGrid1.DataSource.DataSet.Fields[J].AsString + '  ';
        end;
        Memo1.Lines.Add(sTemp);
      end;
    end;
    这个绝对可以的,SelectedRows返回的TBookMarkStr,
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
      vBook: string;
    begin
      memo1.Lines.Clear;
      DBGrid1.DataSource.DataSet.DisableControls;
      vBook := DBGrid1.DataSource.DataSet.Book;
      try
        for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
          DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
          ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString); //test
        end;
      finally
        DBGrid1.DataSource.DataSet.Book := vBook;
        DBGrid1.DataSource.DataSet.EnableControls;
      end;
    end;