比如一个话题的讨论比较火热。如果总是正排序查询正排序显示的话,每次页面打开都最先显示最早的那些条回复,这样觉得不爽;但是如果倒排序查询倒排序显示的话,有些回复是根据上一条的内容有感而发,这样又会让读帖的人找不着北。现在我倒是想出一个折中的办法,也就是页面打开,专用一个数据控件来显示最近30条回复,数据表的设计有个字段是ID标识自增,请问各位哥们姐们如何实现。查询的时候,我知道可以用TOP 30和ID倒排序来实现,但是这样的话,默认也是倒排序显示,我的目的就要让查出来的这30条在数据控件中正排序显示。
哥们不要给我说,MAX(ID)减去30,然后再查询哈,因为有些回复是会被删除的,高手都不会这样说的哈,嘿嘿……谢谢了,3Q

解决方案 »

  1.   

    select * from
    (
    select top 30 * from tb order by id desc
    ) as t order by id asc
      

  2.   

    倒排序查询,正排序显示
    Sql语句按照倒排序来写,使用Command命令得到一个DataTable(DT1)之后,创建DataTable的副本(DT2),用来从后到前的拷贝之前的DT1,再将DT2作为数据源绑定到控件。
      

  3.   

    可在SQL中完成,但是对SQL不熟的话可倒排序读出,根据你的需要在代码中,正排序好之后,构建DataTable,绑定到控件
      

  4.   

    设置数据源的defaultview不行吗
      

  5.   

    不是很明白,但是,如果数据库中不做排序的话,在C#中应该可以这样去处理。
    1.将数据存在DataTable中,让后 dt.DefaultView.Sort = "id desc";
    2.Linq是很强大的