zoukankan      html  css  js  c++  java
  • 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的话,我就直接在存储过程里实现这个功能。 *******************************************************************************************

    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))

  • 相关阅读:
    618狂欢结束,来聊聊华为云GaussDB NoSQL的蓬勃张力
    用GaussDB合理管控数据资源的几点心得
    边缘计算告诉你们公司空调怎么开最省钱
    应对高并发,服务器如何笑而不“崩”
    父亲节程序员硬核示爱:你能看懂几条
    Spring Boot 之Spring data JPA简介
    将Spring Boot应用程序注册成为系统服务
    Spring Boot Admin的使用
    Spring Boot devtool的使用
    Spring Boot国际化支持
  • 原文地址:https://www.cnblogs.com/wanshutao/p/4013524.html
Copyright © 2011-2022 走看看