现在的情况是这样的DBGRID 设置数据集等参数,直接获得MSSQL上的数据,显示于DBGRID上现在想做的是1.既可以选择一行,又可以对字段进行修改
  
  现在是启用了Selectrow就不能edit,edit为真,就不能Selectrow了,不知道怎么弄2.复制一条记录,粘贴与最末尾3.按Del,删除当前光标所在的数据4.点击DBGRID最左边那个小块的事件是什么?点击处的记录号是几号?如果有些问题DBGRID没法解决,请给个能解决的控件,谢谢。

解决方案 »

  1.   

    1、可以在双击事件上面去掉Selectrow和Readonly,然后修改
    2、用个adoquery控件,往表里append一条数据,各个字段等于关联DBGRID 的ado控件
    3、按Del,关联DBGRID 的ado控件.delete
    4、不清楚那个左边的小块,如果是光标列,那没事件吧,有的话我不知道,需要事件自己写一个
      

  2.   

    不如该用cxGrid或者dxGrid吧记录号可以取数据集的RecNo;
      

  3.   

    DBGRID也不是不可以解决,但cxGrid更美观一些。
      

  4.   

    你要想更好的操作数据
    建议用CxGrid 它的功能很强大
    对于你的问题
    1.在options里将Selectrow和Readonly设置为true;
    2.功能上就是插入一条数据(Insert into);
    3.用关连的ADO直接删除就OK了,它有个方法Delete;
    4.最左边那小块 没什么用 你也可以去掉的
      

  5.   

    你用TMS Grid吧,这个很好
    数据库连接用SQLDirect吧,和上面那个配合很好!
    你要求的功能都能实现!
      

  6.   

    给你点显示的程序看看:
    procedure TSetSystermForm.OperatorsShow;              //显示会员规则列表
    var
    list : Integer;
    begin
      list := 1;
      advstrngrdtestgrid1.ClearNormalCells;
      advstrngrdtestgrid1.BeginUpdate;  DSQuery := TSDQuery.Create(nil);
      DSQuery.DatabaseName := 'timecarddb';
      DSQuery.SQL.Clear;
      DSQuery.SQL.Add( 'select uid,name,authority,state from operatorstb');
      try
        DSQuery.Open;
      while not DSQuery.eof do
        begin
          advstrngrdtestgrid1.Cells[0,list] := DSQuery.FieldByName('uid').AsString;
          advstrngrdtestgrid1.Cells[1,list] := DSQuery.FieldByName('name').AsString;
          advstrngrdtestgrid1.Cells[2,list] := DSQuery.FieldByName('authority').AsString;
          if DSQuery.FieldByName('state').AsInteger=1 then
          begin
            advstrngrdtestgrid1.Cells[3,list] := '可用'
          end
          else
          begin
              advstrngrdtestgrid1.Cells[3,list] := '不可用';
          end;      list := list + 1;
          DSQuery.Next;
        end;
        if list <2  then list := 2;
        advstrngrdtestgrid1.RowCount := list;
      finally
        advstrngrdtestgrid1.EndUpdate;
        DSQuery.free;
      end;
    end;
      

  7.   

    通过代码可以实现,如果不想写过多的代码,就用第三方控件,比如:cxgird...
      

  8.   

    cxgrid,没用过,不知道怎么用,tms grid,解决不了问题
    还是算了,我另外想办法好了,如果有dbgrid可以解决这些问题的代码,请贴一下,谢谢。