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. char 转string

    c++: string.c_str()       --------->    c: char c; string str;stringstream stream;stream << ...

  2. spring springmvc js websocket 监听

    第一步:web.xml中支持异步.所有的filter及servlet <filter> <filter-name>characterEncoding</filter-na ...

  3. mysql事务四种隔离级别

    事务的基本要素:原子性,一致性,隔离性,持久性. 事务并发问题:脏读,不可重复读,幻读. mysql隔离级别:read-uncommitted,read-committed,repeatable-re ...

  4. WCF中常用的binding方式 z

    WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务. WSHttpBinding: 比 Bas ...

  5. 在Intellij上面导入项目 & AOP示例项目 & AspectJ学习 & Spring AoP学习

    为了学习这篇文章里面下载的代码:http://www.cnblogs.com/charlesblc/p/6083687.html 需要用Intellij导入一个已有工程.源文件原始内容也可见:link ...

  6. git 使用及常用命令

    git在团队项目中的使用流程 1.首先从一个git远程仓库中clone项目到本地 ? 1 git clone 仓库地址 2.创建开发分支 一般我们写代码不会在master分支上面写,而是新建一个分支 ...

  7. 【层次查询】Hierarchical Queries之亲兄弟间的排序(ORDER SIBLINGS BY)

    http://blog.itpub.net/519536/viewspace-624176 有关层次查询之前的文章参考如下. [层次查询]Hierarchical Queries之"树的遍历 ...

  8. 可在 html5 游戏中使用的 js 工具库

    可在 html5 游戏中使用的 js 工具库 作者: 木頭 时间: September 21, 2014 分类: Utilities,Game 使用 cocos2d-js 3.0 开发游戏项目两三个月 ...

  9. 封装PDO操作数据库

    <?php class DatabaseHandler { /** * sql语句查询 */ public static function query_data ($dataName,$sql, ...

  10. 微信热补丁 Tinker 的实践演进之路

    http://dev.qq.com/topic/57ad7a70eaed47bb2699e68e http://dev.qq.com/topic/57a30878ac3a1fb613dd40eb ht ...