能给出具体点的内容吗?

解决方案 »

  1.   

    直接在qry的SQL語句中使用order by不行嗎?
    一般是寫在DBGRID的ONTITLECLICK事件中,刷新GRID裡面的數據
      

  2.   

    可以对DATASOURCE进行排序或其它的操作..完了之后再传给DBGRID
      

  3.   

    如果你使用query,那么可以在dbgrid的ontitleclick中通过改变query语句实现
      

  4.   

    用Ado就很好办了,假设你的某个表有一字段名为 Name 且Name字段不是索引字段.就用一条语句即可:    AdoDataSet1.Sort:='Name DESC'    //按从ASCII码小到大排序  这个Name字段没有索引也没有关系,ADO会自动为排序字段建一动态索引,然后会再根据这个动态索引加快排序的执行效率.在排序完成后,再把Sort:='';,这样ADO会释放动态建立的索引.
      这样的话,你就可以在 DBGrid的titleclick事件中想对哪个字段排序就对哪个字段排序了.而且是全动态的排序
      

  5.   

    放几个按钮,每个按钮对应不同的排序字段。
    使用ADO的话直接:
    ADOTable1.Sort:='某个字段';
      

  6.   

    select * from tablename order by 某个字段
      

  7.   

    在dbgrid控件的ontitleclick事件中
    dbgrid1.sort:=colmun.fieldname;
      

  8.   

    在DBGrid的OnTitleClick事件中写入:
    DBGrid.DataSource.DataSet.Sort:=Column.FieldName;
    或者
    ADOQuery.Sort:=Column.FieldName;ADOQuery是你的DBGrid关联的数据源
      

  9.   

    with query do
    begin
    sql.clear;
    sql.add('....order by...');
    close;
    open;
    end;
      

  10.   

    for i:=0 to DBGrid1.Columns.Count-1 do
            DBGrid1.Columns.Items[i].Title.Caption:=DBGrid1.Columns.Items[i].DisplayName;    if ADODataSet1.Sort=Column.FieldName+' ASC ' then
        begin
           Column.Title.Caption:='↑'+Column.DisplayName;
           ADODataSet1.IndexFieldNames:=Column.FieldName+' DESC '
        end
        else
        begin
           Column.Title.Caption:='↓'+Column.DisplayName;
           ADODataSet1.IndexFieldNames:=Column.FieldName+' ASC '
        end;
      

  11.   

    在DBGrid的OnTitleClick事件中写入:
    DBGrid.DataSource.DataSet.Sort:=Column.FieldName;
    或者
    ADOQuery.Sort:=Column.FieldName;ADOQuery是你的DBGrid关联的数据源注:拷贝自星星农场。。
      

  12.   

    直接使用查询语句“select * from tablename order by 某个字段”,其他不用更改!
      

  13.   

    select * from tablename order by 某个字段
      

  14.   

    多谢supersoho(JDeveloper)!问题解决了!用supersoho(JDeveloper) 的方法最快!
      

  15.   

    select * from tablename order by 某个字段完了如何传给dbgrid呢?