我想在dbgrid里进行多项选择,然后把这些选择到的记录里的一个字段值都改成“未结”,我因该怎么做

解决方案 »

  1.   

    看看DBgrid 帮助中的 SelectedRows 属性吧
      

  2.   

    1、把DBgrid设成多选模式.
    2、在执行代码中以下面方式访问被选中的记录.
    with DBGridEH1.DataSource.DataSet do
    begin
      for i:=0 to DBGridEH1.SelectedRows.Count-1 do
      begin
        GotoBook(pointer(DBGridEH1.SelectedRows.Items[i]));
        FieldByName('XXX').asstring := '未结';
      end;
    end;
    以上访问方式需要数据集是缓冲方式。
      

  3.   

    我用query连接的,用这个方法
        GotoBook(pointer(DBGridEH1.SelectedRows.Items[i]));
        FieldByName('XXX').asstring := '未结';
    不行吧
      

  4.   

    可以.
    注意设置:dbgrid.datasource=datasource
    datasource.dataset=query
    query.updateobject=updateSQL
    注意将query的cachedUpdate设成true;
      

  5.   

    按照你的作了,可是告诉我query不可编辑或插入,是不是还有什么地方没设置阿
      

  6.   

    var
      i:integer;
      DataSet:TDataSet;
    begin 
      DataSet:=DBGrid1.DataSource.DataSet;
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        DataSet.GotoBook(Pointer(DBGrid1.SelectedRows.Items[i]));
        DataSet.Edit;
        DataSet.FieldByName('aField').AsString := '未结';
        DataSet.Post;
      end;
      

  7.   

    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
    begi
    GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
       dm.qtjz.Edit;
        dm.qtjz.FieldByName('qtzt').AsString := '已结';
        dm.qtjz.Post;
      end;
    end;
    我是这么做的可是在库里,这个标的字段得值却没有改阿,是不是哪里还有问题阿
      

  8.   

    那就把以上的代码后面加上一句:
    var
      i:integer;
      DataSet:TDataSet;
    begin 
      DataSet:=DBGrid1.DataSource.DataSet;
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        DataSet.GotoBook(Pointer(DBGrid1.SelectedRows.Items[i]));
        DataSet.Edit;
        DataSet.FieldByName('aField').AsString := '未结';
        DataSet.Post;
      end;
      DataSet.ApplyUpdate;//加上这一句试试,是不是你的DataSet设了
                          //CachUpdate属性呀
    end;