日期:2014-05-18  浏览次数:20837 次

倒排序查询,正排序显示,如何实现?
比如一个话题的讨论比较火热。

如果总是正排序查询正排序显示的话,每次页面打开都最先显示最早的那些条回复,这样觉得不爽;

但是如果倒排序查询倒排序显示的话,有些回复是根据上一条的内容有感而发,这样又会让读帖的人找不着北。

现在我倒是想出一个折中的办法,也就是页面打开,专用一个数据控件来显示最近30条回复,数据表的设计有个字段是ID标识自增,请问各位哥们姐们如何实现。

查询的时候,我知道可以用TOP 30和ID倒排序来实现,但是这样的话,默认也是倒排序显示,我的目的就要让查出来的这30条在数据控件中正排序显示。
哥们不要给我说,MAX(ID)减去30,然后再查询哈,因为有些回复是会被删除的,高手都不会这样说的哈,嘿嘿……

谢谢了,3Q


------解决方案--------------------
SQL code
select * from
(
select top 30 * from tb order by id desc
) as t order by id asc

------解决方案--------------------
倒排序查询,正排序显示
Sql语句按照倒排序来写,使用Command命令得到一个DataTable(DT1)之后,创建DataTable的副本(DT2),用来从后到前的拷贝之前的DT1,再将DT2作为数据源绑定到控件。
------解决方案--------------------
可在SQL中完成,但是对SQL不熟的话

可倒排序读出,根据你的需要在代码中,正排序好之后,构建DataTable,绑定到控件
------解决方案--------------------
设置数据源的defaultview不行吗
------解决方案--------------------
不是很明白,但是,如果数据库中不做排序的话,在C#中应该可以这样去处理。
1.将数据存在DataTable中,让后 dt.DefaultView.Sort = "id desc";
2.Linq是很强大的
------解决方案--------------------
按照 4 5楼应该可以解决问题。