1

分页

    1.1

        数据库中存储过程

            已知 当前页  pageIndex  页容量 pageSize

            求  总页数 pageCount  和 当前页的数据

            //例子:

            create proc usp_Example

            @pageIndex int,---------参数之间用 , 分割 最后一个参数后 必须没有 ,

            @pageSize int,

            @pageCount int output

            as

                begin

              declare @count int

              select @count=count(*) from <tableName>

              set @pageCount=ceiling(@count*1.0/@pageSize)

              

              select * from

              (select *,row_number() over(order by <columnName> asc/desc) as 编号 from <tableName>) tempTable

              where 编号 between (@pageIndex -1)*@pageSize+1 and @pageIndex*@pageSize

            and

    --测试

    declare @count int

    exec usp_Example 1,2,@count output

    print @count

    

    1.2    SQLHelper中

    private static DataTable ExecuteDataTable(string sql,CommandType ct,params SqlParameter[] param)

    {

        using(SqlConnection conn = new SqlConnection(connStr))

        {

            using(SqlCommand cmd= new SqlCommand(sql,conn))

            {

                cmd.Parameters.AddRange(param);

                cmd.CommandType=ct;

                conn.Open();

                try{

                    using(SqlDataAdapter da = new SqlDataAdapter(cmd))

                    {

                        DataTable dt = new DataTable();

                        da.Fill(dt);

                        return dt;

                    }

                }catch(Exception ex)

                {

                throw ex;

                }

            }

        }

    }

    1.3 DAL 中

    public List<Model> GetModelsByProc(int pageIndex,int pageSize,out int pageCount)

    {

        SqlParameter[] param={

            new SqlParameter("@pageIndex",SqlDbType.Int){Value=pageIndex},

            new SqlParameter("@pageSize",SqlDbType.Int){Value=PageSize},

            new SqlParametre("@pageCount",SqlDbType.Int){Direction=ParameterDirection.OutPut}

        };

        DataTable dt =SqlHelper.ExecuteDataTable("ProcName",CommandType.StoredProcdure,param);

        pageCount=param[2].Value;

        List<Model> list=new List<Model>();

        foreach(DataRow row in dt.Rows)

        {

            list.Add(row);

        }

        return list;

    }

    1.4 BLL

    public List<Model> GetModelsByProc(int pageIndex,int pageSize,out int pageCount)

    {

        return new DAL().GetModelsByProc(pageIndex,pageSize,out pageCount);

    }

    1.5 UI

    .CS界面

    protected string table;

    private int pageIndex=1;//默认第一页

    private int pageSize=3;//默认每页显示3条数据  可从前台 获取进行设定

    private int pageCount;//总页数

    protected string pageBar;

    

    //生成表格

    private string CreateDataTable()

    {

        List<Model> list=new BLL().GetModelsByProc(pageIndex,pageSize,out pageCount);

        StringBuilder sb=new StringBuilder();

        sb.Append("<table>");

        sb.Append("<tr><th>Column1</th><th>Column2</th><th>Column3</th></tr>");

        for(int i=0;i<list.Count;i++)

        {

            Model model=List[i];

            sb.Append("<tr>");

            sb.Append("<td><a href='ModelDetails.aspx?id="+model.ID+"'>modelContent1</a></td>");

            sb.Append("<td><a href='MySelf.aspx?id="+model.ID+"'@action=delete>modelContent2<a></td>");

            sb.Append("<td><a href='WaterMaker.ashx?id="+model.ID+"'>modelContent2</a></td>");

            sb.Append("</tr>");

            

        }

        sb.Append("</table>");

        return sb.ToString();

    }

    //创建分页栏

    private string CreatePageBar()

    {

        StringBuilder sb =new StringBuilder();

        sb.Append("<a href='MySelf.aspx?page=1'>首页</a>");

        int num=pageIndex;

        num=num>1?num-1:1;

        sb.Append("&nbsp;&nbsp;<a href='MySelf.aspx?page="+num+"'>上一页</a>");

        num=num<pageCount?num+1:pageCount;

        sb.Append("&nbsp;&nbsp;<a href='MySelf.aspx?page="+num+"'>下一页</a>");

        sb.Append("&nbsp;&nbsp;<a href='MySelf.aspx?page="+pageCount+"></a>");

        sb.Append("&nbsp;&nbsp;"+pageIndex+"/"+pageCount+"");

        return sb.ToString();

    }

    //页面加载

    protected void Page_Load(object sender,EventArgs e)

    {

        //每次加载都执行

        string page=Request.QueryString["page"];

        if(int.tryParse(page,out pageIndex))

        {

            pageIndex=1;

        }

        table=CreateDataTable();

        pageBar=CreatePageBar();

        

    }

    1.6 .aspx 前台页面

    <%=table%>

    <%-pageBar%>

webform中实现SQL Sever2008数据库数据分页查询的更多相关文章

  1. [.NET] SQL数据分页查询

    [.NET] SQL数据分页查询 程序下载 范例下载:点此下载 原始码下载:点此下载 NuGet封装:点此下载 数据查询 开发系统时,使用C#执行SQL查询指令,就可以从SQL数据库里查询所需数据. ...

  2. Eclipse中连接Sql Sever2008 -----转自Yogurshine

    Eclipse中连接Sql Sever2008 -----转自Yogurshine 一 SQl Sever服务器配置 1我之前已经安装好SQL Sever 2008R2.(注意:安装一遍未成功时,一定 ...

  3. 访问内网中的sql server数据库的简便方法

    前言: 有时候我们要访问局域网内的 sql server服务器,比如测试环境数据库在公司内网,回到家或在客户现场要连接内网中的数据库 第一步:假如可以连接局域网的数据库 192.168.150.129 ...

  4. QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据

    QML与C++交互:在qml中使用QSqlQueryModel显示数据库数据 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 參考链接: http:// ...

  5. MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...

  6. MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)

    http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通 ...

  7. 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

             分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...

  8. MySql实现分页查询的SQL,mysql实现分页查询的sql语句(转)

    http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通 ...

  9. Oracle、MySql、SQLServer 数据分页查询

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借 ...

随机推荐

  1. spring ConfigurableListableBeanFactory 接口

    接口继承关系如上图. ConfigurableListableBeanFactory具体: 1.2个忽略自动装配的的方法. 2.1个注册一个可分解依赖的方法. 3.1个判断指定的Bean是否有资格作为 ...

  2. POJ2104Kth Number

    整体二分模板题, 有些细节需要注意 #include<cstdio> #include<cctype> #include<climits> #include< ...

  3. java多线程03-----------------volatile内存语义

    java多线程02-----------------volatile内存语义 volatile关键字是java虚拟机提供的最轻量级额的同步机制.由于volatile关键字与java内存模型相关,因此, ...

  4. IntelliJ IDEA常用统一设置2-Inspections检查设置(Linux/Mac/Windows)

    Inspections检查设置功能,能检查一些普通问题,比如代码风格等等.当然,这个虽然没有CheckStyle这些插件专业,但也是另一种选择. 官方参考:https://www.jetbrains. ...

  5. MongoDb 出现配置服务不同步的处理

    主要片方法就是用正常的配置文件的数据覆盖有问题的就行. 引用: http://dba.stackexchange.com/questions/48232/mongodb-config-servers- ...

  6. xamarin android 获取根证书代码

    Java.Security.KeyStore keyStore = Java.Security.KeyStore.GetInstance("AndroidCAStore"); ke ...

  7. Boost.Asio c++ 网络编程翻译(18)

    同步服务端 同步服务端也相当简单.它须要两个线程,一个负责接收新的client.另外一个负责处理已经存在的client. 它不能使用单线程:等带一个新的client是一个堵塞操作,所以我们须要另外一个 ...

  8. iOS绘图—— UIBezierPath 和 Core Graphics

    前言 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics.而前者所属UIKit,其实是对Core Graphics框架关于path的进一步封装,所以使用起来 ...

  9. python 工具 二进制文件处理之——大小端变换

    大端换小端 16位: import struct import sys # main body if sys.argv.__len__() > 1: # 参数获取 src_file = sys. ...

  10. Head First Python 学习笔记-Chapter3:文件读取和异常处理

    第三章中主要介绍了简单的文件读取和简单的异常处理操作. 首先建立文件文件夹:HeadFirstPython\chapter3,在Head First Pythong官方站点下载须要使用的文件:sket ...