C#分页
2016-01-03 14:04
381 查看
/// <summary>
/// </summary>
/// <param name="field">分页依据的字段(单表一般为主键)</param>
/// <param name="sort">分页的排序规则</param>
/// <param name="pageNo">页码</param>
/// <param name="pageSize">每页条数</param>
/// <param name="total">总记录数</param>
/// <returns></returns>
public DataSet UserTermInfo( string field, string sort, int pageNo, int pageSize, out int total)
{
StringBuilder sbd = new StringBuilder(@"select a.*,b.DeptName from dbo.UserInfo a,dbo.Department b
where a.deptID=b.deptID ");
string strSql = GetPagerSql(sbd.ToString(), field, sort, pageNo, pageSize);
DataSet ds = SqlHelper.Instance.ExecSqlDataSet(strSql);
total = Convert.ToInt32(ds.Tables[1].Rows[0][0]);
return ds;
}
/// <summary>
/// 获取分页的sql语句
/// </summary>
/// <param name="sql">分页前的查询sql语句</param>
/// <param name="field">分页依据的字段(单表一般为主键)</param>
/// <param name="sort">分页的排序规则</param>
/// <param name="pageNo">页码</param>
/// <param name="pageSize">每页数据条数</param>
/// <returns>实现了分页功能的sql语句</returns>
private static string GetPagerSql(string sql, string field, string sort, int pageNo, int pageSize)
{
return string.Format(
@"select * from (
select *,row_number() over (order by [{0}] {1}) __PagerRowNoField from (
{2}
) s
) t where __PagerRowNoField between {3} and {4};
select count(*) from ({2}) v",
field, sort, sql, (pageNo - 1) * pageSize + 1, pageNo * pageSize);
}
/// </summary>
/// <param name="field">分页依据的字段(单表一般为主键)</param>
/// <param name="sort">分页的排序规则</param>
/// <param name="pageNo">页码</param>
/// <param name="pageSize">每页条数</param>
/// <param name="total">总记录数</param>
/// <returns></returns>
public DataSet UserTermInfo( string field, string sort, int pageNo, int pageSize, out int total)
{
StringBuilder sbd = new StringBuilder(@"select a.*,b.DeptName from dbo.UserInfo a,dbo.Department b
where a.deptID=b.deptID ");
string strSql = GetPagerSql(sbd.ToString(), field, sort, pageNo, pageSize);
DataSet ds = SqlHelper.Instance.ExecSqlDataSet(strSql);
total = Convert.ToInt32(ds.Tables[1].Rows[0][0]);
return ds;
}
/// <summary>
/// 获取分页的sql语句
/// </summary>
/// <param name="sql">分页前的查询sql语句</param>
/// <param name="field">分页依据的字段(单表一般为主键)</param>
/// <param name="sort">分页的排序规则</param>
/// <param name="pageNo">页码</param>
/// <param name="pageSize">每页数据条数</param>
/// <returns>实现了分页功能的sql语句</returns>
private static string GetPagerSql(string sql, string field, string sort, int pageNo, int pageSize)
{
return string.Format(
@"select * from (
select *,row_number() over (order by [{0}] {1}) __PagerRowNoField from (
{2}
) s
) t where __PagerRowNoField between {3} and {4};
select count(*) from ({2}) v",
field, sort, sql, (pageNo - 1) * pageSize + 1, pageNo * pageSize);
}
相关文章推荐
- 【C#——走进你的世界】
- 获取程序集路径 父路径 c#
- c#下使用webdriver WebDriverWait不能正确控制超时的问题
- C#编程中的三中结构
- 在C#中,有6个关系运算符,用于比较两个事物之间的关系
- 自加自减复合赋值-关系表达式
- 在C#中,有五个算术运算符:+,-,*,/,%
- c#.net 获取时间日期年月日时分秒生成自动文件名格式
- C#位运算
- 对virtual关键字的思考
- C# 颜色表
- 【c#】树节点控件
- 【设计模式】模板方法模式
- c#中字体的用法与代码
- C#做windows应用程序超链接到网址
- C# 20161.2
- C# 3.0 新特性 学习(二):匿名类型、扩展方法
- C#中数组[],ArrayList,List<T>泛型的区别
- 【设计模式】代理模式
- C#之方法与函数