This commit is contained in:
sunkaixuan
2017-07-14 01:32:56 +08:00
parent 09a5a2b9ee
commit 7f9b3a8f68
2 changed files with 27 additions and 9 deletions

View File

@@ -465,6 +465,11 @@ namespace SqlSugar
{ {
if (pageIndex == 0) if (pageIndex == 0)
pageIndex = 1; pageIndex = 1;
if (QueryBuilder.PartitionByValue.IsValuable())
{
QueryBuilder.ExternalPageIndex = pageIndex;
QueryBuilder.ExternalPageSize = pageSize;
}
QueryBuilder.Skip = (pageIndex - 1) * pageSize; QueryBuilder.Skip = (pageIndex - 1) * pageSize;
QueryBuilder.Take = pageSize; QueryBuilder.Take = pageSize;
return ToDataTable(); return ToDataTable();
@@ -483,6 +488,11 @@ namespace SqlSugar
{ {
if (pageIndex == 0) if (pageIndex == 0)
pageIndex = 1; pageIndex = 1;
if (QueryBuilder.PartitionByValue.IsValuable())
{
QueryBuilder.ExternalPageIndex = pageIndex;
QueryBuilder.ExternalPageSize = pageSize;
}
QueryBuilder.Skip = (pageIndex - 1) * pageSize; QueryBuilder.Skip = (pageIndex - 1) * pageSize;
QueryBuilder.Take = pageSize; QueryBuilder.Take = pageSize;
return ToList(); return ToList();

View File

@@ -34,6 +34,8 @@ namespace SqlSugar
#region Splicing basic #region Splicing basic
public bool IsCount { get; set; } public bool IsCount { get; set; }
public int? Skip { get; set; } public int? Skip { get; set; }
public int ExternalPageIndex { get; set; }
public int ExternalPageSize { get; set; }
public int? Take { get; set; } public int? Take { get; set; }
public string OrderByValue { get; set; } public string OrderByValue { get; set; }
public object SelectValue { get; set; } public object SelectValue { get; set; }
@@ -239,24 +241,30 @@ namespace SqlSugar
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, (!isRowNumber && this.OrderByValue.IsValuable()) ? GetOrderByString : null); sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, (!isRowNumber && this.OrderByValue.IsValuable()) ? GetOrderByString : null);
sql.Replace("{$:OrderByString:$}", isRowNumber ? (this.IsCount ? null : rowNumberString) : null); sql.Replace("{$:OrderByString:$}", isRowNumber ? (this.IsCount ? null : rowNumberString) : null);
if (IsCount) { return sql.ToString(); } if (IsCount) { return sql.ToString(); }
if (Skip != null && Take == null) return ToPageSql(sql.ToString(),this.Take,this.Skip);
{
return string.Format(PageTempalte, sql.ToString(), Skip.ObjToInt() + 1, long.MaxValue);
} }
else if (Skip == null && Take != null)
protected virtual string ToPageSql(string sql,int? take,int? skip)
{ {
return string.Format(PageTempalte, sql.ToString(), 1, Take.ObjToInt()); if (skip != null && take == null)
{
return string.Format(PageTempalte, sql.ToString(), skip.ObjToInt() + 1, long.MaxValue);
} }
else if (Skip != null && Take != null) else if (skip == null && take != null)
{ {
return string.Format(PageTempalte, sql.ToString(), Skip.ObjToInt() + 1, Skip.ObjToInt() + Take.ObjToInt()); return string.Format(PageTempalte, sql.ToString(), 1, take.ObjToInt());
}
else if (skip != null && take != null)
{
return string.Format(PageTempalte, sql.ToString(), skip.ObjToInt() + 1, skip.ObjToInt() + take.ObjToInt());
} }
else else
{ {
return sql.ToString(); return sql.ToString();
} }
} }
public virtual string ToJoinString(JoinQueryInfo joinInfo) public virtual string ToJoinString(JoinQueryInfo joinInfo)
{ {
return string.Format( return string.Format(