当前位置: 代码迷 >> ASP.NET >> 类似新闻的前一页,后一页功能(就是取三条数据)解决思路
  详细解决方案

类似新闻的前一页,后一页功能(就是取三条数据)解决思路

热度:1550   发布时间:2013-02-25 00:00:00.0
类似新闻的前一页,后一页功能(就是取三条数据)
现在页面上要呈现的是如下格式,:
A.aspx:
1. First Item 2008-08-08
2. Second Item 2008-08-08
3. Third Item 2008-08-08
4. Fourth Item 2008-08-08
当我点击Second Item 的时候,到 B 页面:
B..aspx?itemid=2
Frist Item<<Pre Next>>Third Item
  Second Item
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
================
ItemID是不连续的,就是传一个ID进去,
取一个分页数据
要求是取当前条和它的前一条和后一条
本人存储过程很烂,没有写出来
希望高人给贴一个




------解决方案--------------------------------------------------------
Select top 3 * from tableName where ID >= ID -1 order by id
------解决方案--------------------------------------------------------
用DetailsView控件就可以实现了,也不要编写代码
------解决方案--------------------------------------------------------
探讨
我说过ID 是不连续的啊
恐怕简单的sql 语句是实现不了的

------解决方案--------------------------------------------------------
关注中……
------解决方案--------------------------------------------------------
取 数据的前一个 。和后一个。。。
饿。。帮顶。。
我很好奇这个SQL 语句
------解决方案--------------------------------------------------------
可以这样理解吗?
传入13 
搜索出
1~所有比13小的ID中的最大的ID
2~所有比13大的ID中的最小的ID

或者就像楼上所说的那样,加个IDENTITY字段
IDENTITY ID Title 
 1 1 XXXXX 
 2 4 XXXXXX 
 3 13 XXXXX 
 4 24 XXXXXX 
 5 54 XXXXXX 
 6 66 XXXXXXX
------解决方案--------------------------------------------------------
探讨
谢谢大家的热情
但是我还是有个不幸的消息要告诉大家:大家说的完全不满足我的要求
我的要求很简单
就是 传入一个ID(主键,但是不重复)
放回一个DataTable(现在项目里用的是List <>),三行数据
当前条,当前条的前一条,当前条的下一条
页面上的操作不是问题
问题是我要得到数据是难题
谢谢大家的热情
但是我还是有个不幸的消息要告诉大家:大家说的完全不满足我的要求
我的要求很简单
就是 传入一个ID(主键,但是不重复)
放回一个DataTable(现在项目里用的是List <>),三行数据
当前条,当前条的前一条,当前条的下一条
页面上的操作不是问题
问题是我要得到数据是难题

------解决方案--------------------------------------------------------
10楼 如果按照你的 思路 就不用加哪个ID了。。。
直接取 1~所有比13小的ID中的最大的ID
2~所有比13大的ID中的最小的ID 
就可以了。
只是这样的话。。。。。SQL语句 似乎。。很没效率啊
------解决方案--------------------------------------------------------
我说下思路。。虽然 方法苯。。

先排序 查询一次。。。
然后 取 参数。。。。然后 取比参数小的ID中最大的。。。。
在取。。比参数大的 ID 最小的。。。
select MAX from 表 where ID< 参数。。
大概是这个意思。。。
呵呵 感觉好麻烦。。
------解决方案--------------------------------------------------------
不好意思,没看清。
可以用list count GetByIndex
------解决方案--------------------------------------------------------
探讨
也不是
是 根据我的排序后紧邻 ID 为 13 的前一条和后一条数据
ID 就是主键,是 IDENTITY的
数据库不可更改了,所以不要说再加什么列了

------解决方案--------------------------------------------------------
SQL code
Select top 3  *  from  tableName where ID >= ID -1  order by id
------解决方案--------------------------------------------------------
select * from table where id=@listid or id=(select max(id) from table where id<@listid)
or id=(select min(id) from table where id>@listid)
  相关解决方案