首先是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的话,我就直接在存储过程里实现这个功能。 *******************************************************************************************

asp.net实现 下一篇 和上一篇 效果C#完整代码及存储过程

2011-01-19 00:32:34|  分类: C#学习|举报|字号 订阅

 
 

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 编程问题 实现下一篇 和上一篇效果的更多相关文章

  1. ASP.NET编程模型之ASP.NET页面生命周期图解

    ASP.NET编程模型中ASP.NET页面生命周期是指什么呢?它包括什么呢?ASP.NET编程模型之ASP.NET页面生命周期具体的过程有哪些呢?下面就开始我们的讲解吧: ASP.NET 页运行时,此 ...

  2. ASP.NET MVC 4 插件化架构简单实现-思路篇

    用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC 4 来实现每个插件都可以完全从主站点剥离出来,即使只是一个插 ...

  3. ASP.NET MVC 4 插件化架构简单实现-实例篇

    先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...

  4. 使用Word API打开Word文档 ASP.NET编程中常用到的27个函数集

    使用Word API(非Openxml)打开Word文档简单示例(必须安装Word) 首先需要引入参照Microsoft.Office.Interop.Word 代码示例如下: public void ...

  5. ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现

    很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地 ...

  6. ASP.NET 安全系列 Membership三步曲之入门篇 - Jesse Liu

    Membership 三步曲 ASP.NET 安全系列 Membership三步曲之入门篇 ASP.NET 安全系列 Membership三步曲之进阶篇 ASP.NET 安全系列 Membership ...

  7. ASP.Net中自定义Http处理及应用之HttpModule篇

    HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandle ...

  8. 16第一章 ASP.Net编程基础知识

    第一章        ASP.Net编程基础知识 第一章        ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...

  9. 编程道拓扑bcd.top 0x01/ 开局第一篇: 随便聊聊/ 随笔

    0x01 开局 编程道拓扑(bcd.top)是一个前端从业者的思考和总结, 如果你喜欢, 欢迎关注! 作者是一个前端从业者, 本系列会总结作者在工作和学习中的一些思考, 会有具体的技术点, 也会有关于 ...

随机推荐

  1. itext poi 学习之旅 (2)创建excel

    Computer.java package com.qiang.poi; public class Computer { private int id; private String name; pr ...

  2. Word隐藏回车符技巧

    每一次在Word中敲击回车时,都会留下一个回车符,回车次数多了回车符也就跟着变多了,这的确是太影响视觉效果了,我们要如何操作才能将这些回车符去掉呢?特意为大家献上Word2003和Word2007中隐 ...

  3. Flask学习记录之Flask-Migrate

    一.配置Flask-Migrate from flask.ext.migrate import Migrate, MigrateCommand migrate = Migrate(app,db) #第 ...

  4. Java学习笔记--集合元素的比较Comparable,Comparator

    原文见: http://www.cnblogs.com/sunflower627/p/3158042.html 1. Comparator 和 Comparable 相同的地方 他们都是java的一个 ...

  5. Run Loops

    Run Loops Run loops是线程相关的的基础框架的一部分.一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件.使用run loop的目的是让你的线程在有工作的时 ...

  6. iOS触摸事件深度解析-备用

    概述 本文主要解析从我们的手指触摸苹果设备到最终响应事件的整个处理机制.本质上讲,整个过程可以分为两个步骤: 步骤1:找目标.在iOS视图层次结构中找到触摸事件的最终接受者: 步骤2:事件响应.基于i ...

  7. m2eclipse插件安装

    一.给Eclipse安装maven的插件 m2eclipse 1 打开eclipse 2 Help -->Eclipse MarketPlace,在打开的界面搜索框中输入maven查找m2ecl ...

  8. 单片机串口通讯RXD与TXD如何对接详解

    相信很多人都对单片机与计算机或者芯片通信时,RXD与TXD如何连接比较困惑.因为在一些电路图中,有的是直连接法,有的是交叉接法,让人有点摸不着头脑. 首先需要明白两个概念,就是DTE和DCE.DTE是 ...

  9. BZOJ2697: 特技飞行

    2697: 特技飞行 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 607  Solved: 363[Submit][Status] Descript ...

  10. J2EE学习路线

    第一部分:  JAVA语言基础知识.包括异常.IO流.多线程.集合类.数据库.(切记基础知识一定要时时刻刻巩固,注意,如果你是想以最快速度学习J2EE,关于Java中的Swing知识点,就只做了解)  ...