如何将Dbgrid所选择的多行记录中的某一列的值全部修改为'abc'?

解决方案 »

  1.   

    我只知道用这个 可能有更好的 不过我不知道
    for I:=1 to data1.ADOQuery1.RecordCount do
          begin
           data1.ADOQuery1.edit;
           data1.ADOQuery1.fieldByName('图号').asstring:='abc';
           data1.ADOQuery1.post;
           data1.ADOQuery1.Next;
          end;
      

  2.   

    To: surdon(斯丹)
     我的意思是将DBGrid1.SelectedRows (Dbgrid所选择的多行记录)进行修改,不是将Adoquery中的所有记录都修改。
      

  3.   

    我按照下面的代码,调试时出现错误!不知道什么原因? 请各位指点! if DBGrid1.SelectedRows.Count>0 then
      with DBGrid1.DataSource.DataSet do
        begin
          for i:=0 to DBGrid1.SelectedRows.Count-1 do
          begin
            GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
            Edit;
            Fields[1].Value:='abc';
          end;
         Adoquery1.UpdateBatch(arAll);
      

  4.   

    参考以下代码
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     if DBGrid1.SelectedRows.Count<=1 then Exit;
     DBGrid1.DataSource.DataSet.First;
     while not DBGrid1.DataSource.DataSet.Eof do
     begin
       if DBGrid1.SelectedRows.CurrentRowSelected then
       DBGrid1.DataSource.DataSet.Edit;
       DBGrid1.DataSource.DataSet['指定字段名']:='abc';
       DBGrid1.DataSource.DataSet.UpdateRecord;
       DBGrid1.DataSource.DataSet.Next;
     end;
    end;
      

  5.   

    for I:=1 to data1.ADOQuery1.RecordCount do
          begin
           data1.ADOQuery1.edit;
           data1.ADOQuery1.fieldByName('图号').asstring:='abc';
           data1.ADOQuery1.post;
           data1.ADOQuery1.Next;
          end;
    //可以先判断行是否被选中,如果是修改,不是continue;
      

  6.   

    可以先判断行是否被选中,如果是修改,不是continue
      

  7.   

    你写的应该可以。修改的列要允许重复。
    var i:integer;
    begin
      if DBGrid1.SelectedRows.Count>0 then
      with DBGrid1.DataSource.DataSet do
      try
        DisableControls;
        for i:=0 to DBGrid1.SelectedRows.Count-1 do
        begin
          GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
          Edit;
          Fields[1].Value:='abc';
          Post;
        end;
      finally
        EnableControls;
      end;
    end;
      

  8.   

    To :: rockswj(石头,继续学习) 用你的方法,修改的记录是保存不住的。只用了UpdateBatch(arAll) 才可以,但是调试程序时出现错误:“SQL Web助手:没有找到Web任务.请验证任务名称是否错误"  
     请各位高手指点!
      

  9.   

    楼上各位的方法,我都试验过了,都不行啊!。。,唯独我的可以修改,但是出现错误:“SQL Web助手:没有找到Web任务.请验证任务名称是否错误"
      

  10.   

    你的代码应该没有问题。对于出现的错误,可能是你对该表做过Web服务,将该服务删除即可。你可以试验看看。