码迷,mamicode.com
首页 > 数据库 > 详细

SqlServer分页方法

时间:2015-10-13 10:41:09      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

/// <summary>
/// 使用虚拟表进行分页查询,不适用明确知道列名的查询
/// </summary>
/// <param name="sql">sql 如"select * from name where 1=1"</param>
/// <param name="pageIndex">页码 如"1"</param>
/// <param name="pageSize">条数 如"100"</param>
/// <returns>DataTable</returns>
public static DataTable SelectPaging(String sql, int pageIndex, int pageSize)
{
    //定义虚拟表名称
    string temporaryTable = "#" + randString();
    //创建您虚拟表
    string sqlPaging = "select identity(int) as ZZZZZ, * into " + temporaryTable + " from (select TOP 100 Percent * from ( " + sql + ") a) a ";
    //使用虚拟表进行分页查询
    sqlPaging += "select * from " + temporaryTable + " a WHERE 1=1 "
        + "AND a.ZZZZZ >= " + pageIndex * pageSize + " AND a.ZZZZZ <= " + ((pageIndex + 1) * pageSize - 1) + " ";
    //删除虚拟表
    sqlPaging += "DROP TABLE " + temporaryTable;
    //执行Sql语句 SelectCustomSql为执行sql的方法需自己定义
    DataTable dt = SelectCustomSql(sqlPaging);
    //判断返回结果是否为空
    if (dt != null)
    {
        //移除标识列
        dt.Columns.Remove("ZZZZZ");
    }
    //返回结果
    return dt;
}

其他分页方法百度上比较多。

SqlServer分页方法

标签:

原文地址:http://www.cnblogs.com/aroundight/p/4873664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!