用Tquery查询结果放到一个DBGrid中,想要实现单击一下button 就让某列所有的内容置为一个字串?
请指教?谢谢

解决方案 »

  1.   

    这样试试:adoquery.first;
    while not adoquery.eof dobeginadoquery.fieldbyname('yourfieldname').AsString:='yourstring';
    adoquery.next;
    end;
      

  2.   

    在DBGrid1DrawColumnCell中写事件:例如:
      if(column.field = dbgrid1.DataSource.DataSet.FieldByName('USE_SCOPE')) or
        (column.field = dbgrid1.DataSource.DataSet.FieldByName('MAX_NUMBER')) or
        (column.field = dbgrid1.DataSource.DataSet.FieldByName('EXPLAIN')) then
         begin
           DBGrid1.Canvas.FillRect(Rect);
           DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top,column.field.AsString);
         end;
      

  3.   

    最简单的实现方法是:(比如将第1列,全部改为'new')adoquery.first;
    while not adoquery.eof do
    begin
      adoquery.edit;
      adoquery.fields[0].AsString:='new';
      adoquery.post;
      adoquery.next;
    end;如果需要,可以将当前的位置进行纪录,修改之后再定位这里
    可以用纪录当前的位置adoquery.RecNo这种缺点是可以看到纪录在表格内从头到尾滚动!
      

  4.   

    第二种方法是:
    用第二个Query2,他不显示内容,仅仅修改内容,然后query1先关闭,再重新打开,最后定位纪录,这样就不会看到滚动了,代码要麻烦一些