/**//// <summary> /// 生成分页查询语句,包含记录总数 /// </summary> /// <returns></returns> public string GenerateSqlIncludeTotalRecords() { StringBuilder sb = new StringBuilder(); if (string.IsNullOrEmpty(SelectClause)) SelectClause = "*";
if (string.IsNullOrEmpty(SortClause)) SortClause = PK;
int start_row_num = (PageIndex - 1)*PageSize + 1;
sb.AppendFormat(" from {0}", FromClause); if (WhereClause.Length > 0) sb.AppendFormat(" where 1=1 {0}", WhereClause);
if (!string.IsNullOrEmpty(GroupClause)) sb.AppendFormat(" group by {0}", GroupClause);
string countSql = string.Format("Select count(0) {0};", sb); string tempSql = string.Format( "WITH t AS (SELECT ROW_NUMBER() OVER(ORDER BY {0}) as row_number,{1}{2}) Select * from t where row_number BETWEEN {3} and {4};", SortClause, SelectClause, sb, start_row_num, (start_row_num + PageSize - 1));
return tempSql + countSql; }
/**//// <summary> /// 生成分页查询语句 /// </summary> /// <returns></returns> public override string GenerateSql() { StringBuilder sb = new StringBuilder(); if (string.IsNullOrEmpty(SelectClause)) SelectClause = "*";
if (string.IsNullOrEmpty(SortClause)) SortClause = PK;
int start_row_num = (PageIndex - 1)*PageSize + 1;
sb.AppendFormat(" from {0}", FromClause); if (WhereClause.Length > 0) sb.AppendFormat(" where 1=1 {0}", WhereClause);
if (! string.IsNullOrEmpty(GroupClause)) sb.AppendFormat(" group by {0}", GroupClause);
return string.Format( "WITH t AS (SELECT ROW_NUMBER() OVER(ORDER BY {0}) as row_number,{1}{2}) Select * from t where row_number BETWEEN {3} and {4}", SortClause, SelectClause, sb, start_row_num, (start_row_num + PageSize - 1)); } }