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. mysql function

    mysql 自定义函数的使用 先查看函数功能是否开启:show variables like '%func%'; 若是未开启则:SET GLOBAL log_bin_trust_function_cr ...

  2. Linux Perf Probes for Oracle Tracing

    Luca Canali on 21 Jan 2016 Topic: this post is about Linux perf and uprobes for tracing and profilin ...

  3. http://blog.csdn.net/zh521zh/article/details/52687922

    http://blog.csdn.net/zh521zh/article/details/52687922

  4. SilverLight:布局(3)StackPanel 对象

    ylbtech-SilverLight-Layout: 布局(3)StackPanel 对象 A, Nesting Layout Containers(内嵌布局容器) B, StackPanel(队列 ...

  5. pandas常见函数详细使用

    groupby函数 pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作,根据一个或多个键(可以是函数.数组.Series或DataFrame ...

  6. yii框架:CDbConnection failed to open the DB connection: could not find driver的解决的方法

    这个问题是由于php中缺少pdo mysql造成的. 解决方法是为php加入此扩展.前往你最早的php安装文件,进入ext/pdo_mysql/文件夹下,然后./configure --with-ph ...

  7. phonegap工程中修改app的名字

    针对phonegap比较高的版本,我的是6.4.0. 在phonegap工程中,当添加了iOS和android平台或多个平台后,工程进行了开发,然后觉得app的名字想修改一下(比如在手机上显示的app ...

  8. 近期微信上非常火的小游戏【壹秒】android版——开发分享

    近期在朋友圈,朋友转了一个html小游戏[壹秒],游戏的规则是:用户按住button然后释放,看谁能精准地保持一秒的时间.^_^刚好刚才在linuxserver上调试程序的时候server挂了,腾出点 ...

  9. JSP自己定义标签继承哪个类

    JSP自己定义标签继承哪个类 解:JSP自己定义标签继承TagSupport

  10. Odoo configuration items

    [options] addons_path = /opt/odoo/server/openerp/addons,/opt/odoo/server/addons admin_passwd = admin ...