分页

来源:互联网 发布:域名备案低价 编辑:程序博客网 时间:2024/06/06 18:43
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

namespace Tree.Web
{
    public partial class WebForm5 : System.Web.UI.Page
    {
        SqlConnection sqlconn;
        protected void Page_Load(object sender, EventArgs e)
        {
            int PageSize = 2;//每页显示条数
            int PageCount = 0;//总共页数
            int RecordCount = 0;//数据库记录条数
            int CurrentPage = 0;//当前页数

            string conn = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
            sqlconn = new SqlConnection(conn);
            sqlconn.Open();
            //第一步:首先计算数据库的记录条数
            //RecordCount=
            RecordCount = CountRecord();
            Response.Write("数据库的记录条数有:" + RecordCount + "<br />");

            //第二步: 计算页数
            PageCount = RecordCount / PageSize;
            if (RecordCount % PageSize > 0)//如果整除不了,要多出一页
            {
                PageCount = PageCount + 1;
            }
            Response.Write("分页的页数有:" + PageCount + "<br />");


            //第三步:获取当前页数
            if (Request.QueryString["page"] != null)
            {
                CurrentPage = Convert.ToInt32(Request.QueryString["page"]);
            }
            else
            {
                CurrentPage = 1;//如果没设置,就从第一页开始
            }
            Response.Write("当前页数是:" + CurrentPage + "<br />");


            //第四步: 开始分页
            string sql="";
            if (CurrentPage == 1)
            {
                sql = "SELECT TOP " + PageSize + " cid, cname FROM ProClass order by cid desc";
            }
            else
            {
                //分页方法一
                sql = "SELECT TOP " + PageSize + " cid, cname FROM ProClass ";
                sql += "where cid not in (select top " + (CurrentPage - 1) * PageSize + " cid from ProClass order by cid desc) order by cid desc";

                //分页方法二
                //sql = "SELECT TOP " + PageSize + " cid, cname FROM ProClass ";
                //sql += "where cid < (select min(cid) from (select top " + (CurrentPage - 1) * PageSize + " cid from ProClass order by cid desc) as t) order by cid desc ";
            }
             
            
            SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
            SqlDataReader sqldr = sqlcmd.ExecuteReader();
            string HTMLTable;
            HTMLTable = "<table>";
            while (sqldr.Read())
            {

                HTMLTable += "<tr><td>" + sqldr.GetInt32(0).ToString() + "</td></tr>";
                //Response.Write(sqldr.GetInt32(0));
            }
            HTMLTable += "</table>";
            Response.Write(HTMLTable);
            //sqldr.Close();

            //第五步:设置首页,上一页,下一页,末页按钮
            int pagePre, pageNext;
            pagePre = CurrentPage - 1;
            pageNext = CurrentPage + 1;
            string pageHtml;

            if (pagePre == 0)
            {
                pageHtml = "首页&nbsp;上页";
            }
            else
            {
                pageHtml = "<a href=?page=1>首页</a>&nbsp;<a href=?page=" + pagePre + ">上页</a>";
            }

            if (pageNext > PageCount)
            {
                pageHtml += "&nbsp;下页&nbsp;末页";
            }
            else
            {
                pageHtml += "&nbsp;<a href=?page=" + pageNext + ">下页</a>";
                pageHtml += "&nbsp;<a href=?page=" + PageCount + ">末页</a>";
            }
            IndexButton.Text = pageHtml;

        }

        private int CountRecord()//统计数据库表的记录条数
        {
            int count = 0;
            string sql = "select count(*) from ProClass";
            SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
            SqlDataReader sqldr = sqlcmd.ExecuteReader();
            if (sqldr.Read())
            {
                count = sqldr.GetInt32(0);
            }
            sqldr.Close();
            return count;
        }
    }
}


原创粉丝点击