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. redis常用命令与使用分析

    redis-cli的使用 连接服务器 redis-cli -h 127.0.0.1 -p 6392  -a 123456 set操作 语法 sadd key [members.......]      ...

  2. linux几种常见的文件内容查找和替换命令

    作为一个以前没怎么接触过linux的小白,开始使用linux,各种不习惯,这周遇到一个文件内容测查找和替换的需求.学习了以下几种实现方式: 1.vi命令下的查找和替换 1.1 vi下的查找 /patt ...

  3. 快速构造FFT/NTT

    @(学习笔记)[FFT, NTT] 问题概述 给出两个次数为\(n\)的多项式\(A\)和\(B\), 要求在\(O(n \log n)\)内求出它们的卷积, 即对于结果\(C\)的每一项, 都有\[ ...

  4. django 设置局域网内访问项目

    1. 关闭主机电脑上的防火墙(或者不用关闭,加一个端口号就行) 2.在你的settings.py文件中,找到ALLOWED_HOSTS=[ ],在中括号中加入你在局域网中的IP.例:我在局域网中的IP ...

  5. JavaWeb页面添加隐藏版权信息

    JavaWeb页面添加隐藏版权信息. 首先,我推荐一个值得玩味的版权站点,有兴趣的朋友能够去看上一看.Nazo Level 1,这个demo中我能发掘到有5个步骤,你看你能发现几层? 接下来.我来介绍 ...

  6. Solaris主机间的信任关系机制

    解决问题: 管理员经常在其他服务器之间登录,是否需要密码切换. 知识点:主机间信任关系.R 命令集 /etc/hosts/equiv 文件 R服务是不加密的,别人可以破解. 主机名 + 用户名. + ...

  7. 使用Android注解来改善代码

    昨晚看到一篇好文章.然后是英文的.所以决定翻译分享给大家.这是原文链接:http://www.michaelevans.org/blog/2015/07/14/improving-your-code- ...

  8. AVL平衡树的插入例程

    /* **AVL平衡树插入例程 **2014-5-30 11:44:50 */ avlTree insert(elementType X, avlTree T){ if(T == NULL){ T = ...

  9. .Net 平台WebService的创建、部署和使用介绍

    .NET平台内建了对Web Service的支持,包括Web Service的构建和使用.与其它开发平台不同,使用.NET平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了.. ...

  10. 自己动手写CPU之第七阶段(5)——流水线暂停机制的设计与实现

    将陆续上传本人写的新书<自己动手写CPU>,今天是第28篇.我尽量每周四篇 China-pub的预售地址例如以下(有文件夹.内容简单介绍.前言): http://product.china ...