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. 教你写Linux设备驱动程序:一个简短的教程

    教你写Linux设备驱动程序:一个简短的教程 http://blog.chinaunix.net/uid-20799298-id-99675.html

  2. 济南day4

    啥也不会,做了不对,对了没分.T1 50 + 30 + 0想了想,有思路,写了,半个小时写完,算错复杂度,复杂度最差(n*m),想成了(n+m)被卡没了50分,gg.....T2自己写了个单向并查集, ...

  3. 用AntRun插件测试Maven的生命周期

    在用AntRun插件之前,需要了解以下几个知识点: 1.Maven的生命周期,参考:http://www.cnblogs.com/EasonJim/p/6816340.html,主要是要知道生命周期里 ...

  4. golang实现dns域名解析(一)

    本文将详细讲解如何用go语言一步一步实现dns域名解析的过程,并简单介绍点dns有关的知识,直接开始正题吧. 首先我们要了解dns解析的过程,没有了解的请看这里DNS入门(转)很详细.扫盲结束后,我们 ...

  5. jsp、freemarker、velocity 的区别

    在java领域,表现层技术主要有三种:jsp.freemarker.velocity. 一.jsp是大家最熟悉的技术:优点:1.功能强大,可以写java代码2.支持jsp标签(jsp tag)3.支持 ...

  6. 【sublime text3】破解 最近破解码 /激活成功,但是过一会就提示激活码失效的 Build3143

    —– BEGIN LICENSE —– TwitterInc User License EA7E- 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A3708 ...

  7. 解决mac osx下pip安装ipython权限的问题

    1 pip install ipython --user -U 下面是pip install gevent的错误提示, 又是 Operation not permitted …   1 2 3 4 5 ...

  8. clipRect 介绍

    clipRect 介绍 博客分类: android   android的clip有以下两点疑问: Clip(剪切)的时机 Clip中的Op的参数的意思.   通常咱们理解的clip(剪切),是对已经存 ...

  9. mycat安装和测试

    mycat安装和测试 一.  环境准备 本机环境是三台centos6.5 IP 主机名 数据库名 安装软件 192.168.17.4 master db1 mycat,mysql 192.168.17 ...

  10. elasticsearch 查询模板

    简单版示例: 2.x版本(相比于1.x版本,使用bool替代filtered,使用must替代query) { "query": { "bool": { &qu ...