asp net 编程问题 实现下一篇 和上一篇效果
首先是access数据库,有一个名为news的表,里面有三个字段,分别为id,classid 和name 其中id为主键,classid可以重复 现在有以下数据: id classid name 1 1 我的测试1 2 2 我的测试2 3 2 我的测试3 4 1 我的测试4 5 2 我的测试5 6 3 我的测试6 7 1 我的测试7 8 2 我的测试8 问题来了,我要实现上一篇和下一篇的效果,假设现在显示的是第5条新闻如下: 我的测试5 实现以下: 上一篇:我的测试3 下一篇:我的测试8 因为“我的测试5”的classid是2 所以要求上一篇和下一篇的classid也是2 这个很简单。你在查询的时候要查3次,第一次查询的是当前的记录,第2,3次查询的分别是上一条和下一条记录。 所以说应该是3条语句。 select * from news where id=id select top 1 * from news where id > id and classid=classid order by id asc select top 1 * from news where id < id and classid=classid order by id desc 由于ascss没存储过程,所以你可能要先把当前的记录查出来,取出这条记录的分类id,然后才能写出下面的2条查询语句。如果是sqlserver的话,我就直接在存储过程里实现这个功能。 *******************************************************************************************
C# 代码
//在页面上放2个Label 设置next1和up1 .
private void BindNewsUpNextData(int nNewsID)
{
News news = new News();
//上一篇
SqlDataReader recup1 = news.GetSingleNewsUp(nNewsID);
if (recup1.Read())
{
this.next1.Text = "下一篇:" + " <a href=shownews.aspx?newsid=" + recup1["NewsID"].ToString() + ">" + recup1["title"].ToString() + "</a>";
}
else
{
this.next1.Text = "下一篇:" + "已经没有了";
}
recup1.Close();
//下一篇
SqlDataReader recnext1 = news.GetSingleNewsNext(nNewsID);
if (recnext1.Read())
{
this.up1.Text = "上一篇:" + " <a href=shownews.aspx?newsid=" + recnext1["NewsID"].ToString() + "> " + recnext1["title"].ToString() + "</a>";
}
else
{
this.up1.Text = "上一篇:" + "已经没有了";
}
recnext1.Close();
}
SQL server 2005存储过程:
PROCEDURE [dbo].[Pr_News_Single_Next_Get]
(
@NewsID int
)
AS
SELECT
xw_News.NewsID,xw_News.title
FROM
xw_News
WHERE
NewsID=(select min(NewsID) from xw_News where NewsID>@NewsID and CategoryID=
(select CategoryID from xw_News where NewsID=@NewsID))
PROCEDURE [dbo].[Pr_News_Single_Up_Get]
( @NewsID int
)
AS
SELECT
xw_News.NewsID,xw_News.title
FROM
xw_News
WHERE
NewsID=(select max(NewsID) from xw_News where NewsID<@NewsID and CategoryID=
(select CategoryID from xw_News where NewsID=@NewsID))
asp net 编程问题 实现下一篇 和上一篇效果的更多相关文章
- ASP.NET编程模型之ASP.NET页面生命周期图解
ASP.NET编程模型中ASP.NET页面生命周期是指什么呢?它包括什么呢?ASP.NET编程模型之ASP.NET页面生命周期具体的过程有哪些呢?下面就开始我们的讲解吧: ASP.NET 页运行时,此 ...
- ASP.NET MVC 4 插件化架构简单实现-思路篇
用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC 4 来实现每个插件都可以完全从主站点剥离出来,即使只是一个插 ...
- ASP.NET MVC 4 插件化架构简单实现-实例篇
先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...
- 使用Word API打开Word文档 ASP.NET编程中常用到的27个函数集
使用Word API(非Openxml)打开Word文档简单示例(必须安装Word) 首先需要引入参照Microsoft.Office.Interop.Word 代码示例如下: public void ...
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地 ...
- ASP.NET 安全系列 Membership三步曲之入门篇 - Jesse Liu
Membership 三步曲 ASP.NET 安全系列 Membership三步曲之入门篇 ASP.NET 安全系列 Membership三步曲之进阶篇 ASP.NET 安全系列 Membership ...
- ASP.Net中自定义Http处理及应用之HttpModule篇
HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandle ...
- 16第一章 ASP.Net编程基础知识
第一章 ASP.Net编程基础知识 第一章 ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...
- 编程道拓扑bcd.top 0x01/ 开局第一篇: 随便聊聊/ 随笔
0x01 开局 编程道拓扑(bcd.top)是一个前端从业者的思考和总结, 如果你喜欢, 欢迎关注! 作者是一个前端从业者, 本系列会总结作者在工作和学习中的一些思考, 会有具体的技术点, 也会有关于 ...
随机推荐
- 怎么用C#获取Scenario step在specflow里
公司最近在用specflow 这种BDD的模式,但PM还是想把case再存进TestManager里面一份儿一遍后期集成TestManager 自动runcase用.所以我们需要获取每个scenari ...
- Swift--基础(一)基本类型 符号 字符串(不熟的地方)
常量 变量 let age = 20 常量不可变 var num = 24 变量可变 let count:Int = 2 定义类型 Double(count) 类型转换 符号 1.?? let de ...
- POJ2976 Dropping tests(二分+精度问题)
---恢复内容开始--- POJ2976 Dropping tests 这个题就是大白P144页的一个变形,二分枚举x,对a[i]-x*b[i]从大到小进行排序,选取前n-k个判断和是否大于等于0,若 ...
- title滚动
代码: <html><head><title>滚动的文字在TITLE栏上不停滚动</title><script language=javascri ...
- 智能的PHP缩图类
*作者:落梦天蝎(beluckly)*完成时间:2006-12-18*类名:CreatMiniature*功能:生成多种类型的缩略图*基本参数:$srcFile,$echoType*方法用到的参数:$ ...
- Linux_Shell符号及各种解释对照表
Shell符号及各种解释对照表: Shell符号 使用方法及说明 # 注释符号(Hashmark[Comments]) 1.在shell文件的行首,作为shebang标记,#!/bin/bash; 2 ...
- Idea使用记录--添加Problems&&解决Autowired报错could not autowire
今天在使用Idea的时候,发现Idea在整个每次找到错误代码非常不方便(Idea如果类中有错误,没有打开过类并不会提示,比如构建工程后缺少jar包问题).我想快速看到工程哪里出问题类似于eclipse ...
- 如何在项目中使用gtest1.6
问题 gtest1.6版本的README里说该版本不支持make install,其意思就是说你没法通过make命令把gtest安装到/usr/local/lib之类的目录,所以你也没办法通过下面的命 ...
- js运算符的优先级
自上向下优先级降低 运算符 描述 . [] () 字段访问.数组下标.函数调用以及表达式分组 ++ -- - ~ ! delete new typeof void 一元运算符.返回数据类型.对象创建. ...
- gitosis使用笔记
gitosis是Git下的权限管理工具,通过一个特殊的仓库(gitosis-admin.git)对Git权限进行管理. 1:服务端安装并配置gitosis (1)通过以下方式获取到安装包 root@w ...