如何成批修改dbgrid中的已选中的多条记录(不是连续的记录),如:选中了1,4,6条记录,现在将姓名字段的值 全部改为另一个值!!!谢谢了。

解决方案 »

  1.   


        with dbgrid1.DataSource.DataSet do//DbGrid的Dataset
          for i:=0 to dbgrid1.SelectedRows.Count-1 do//遍历所有选择的行
          begin
            GotoBook(pointer(dbgrid1.SelectedRows.Items[i]));//移动到选择的行
            此处进行修改数据操作。
          end;
         end;
      

  2.   

    getit911:你好,首先感谢你给我回贴子,可是你的方法我曾经用过,但是会出错,你再试一试,呵呵。你还有什么新的方法吗?
      

  3.   

    to:xtascf(风中之峰)
    不会的,我的程序正在跑着呢。这段程序是 delphi帮助中提供的你可以看看帮助文件。
      

  4.   

    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;
      

  5.   

    with dbgrid1.DataSource.DataSet do//DbGrid的Dataset
          for i:=0 to dbgrid1.SelectedRows.Count-1 do//遍历所有选择的行
          begin
            GotoBook(pointer(dbgrid1.SelectedRows.Items[i]));//移动到选择的行
            此处进行修改数据操作。
            Table['column_name']:=Value;
            Table.edit;
          end;
         end;