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

  • 相关阅读:
    [Python接口自动化]从零开始学习python自动化(1):环境搭建
    转载:python + requests实现的接口自动化框架详细教程
    转载:selenium的wait.until()
    转载:selenium webdriver定位不到元素的五种原因及解决办法
    关于xpath语句完全正确,但是页面报错: no such element: Unable to locate element: {"method":"xpath","selector":"xpath"}
    BDD测试之selenium控制滚动条
    阿里云 -- 2万并发用户方案
    关于语音合成和识别
    在线浏览文档的方案
    关于全文搜索引擎
  • 原文地址:https://www.cnblogs.com/wanshutao/p/4013524.html
Copyright © 2011-2022 走看看