mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-20 18:48:09 +08:00
-
This commit is contained in:
@@ -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();
|
||||||
|
@@ -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; }
|
||||||
@@ -236,27 +238,33 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
var isRowNumber = Skip != null || Take != null;
|
var isRowNumber = Skip != null || Take != null;
|
||||||
var rowNumberString = string.Format(",ROW_NUMBER() OVER({0}) AS RowIndex ", GetOrderByString);
|
var rowNumberString = string.Format(",ROW_NUMBER() OVER({0}) AS RowIndex ", GetOrderByString);
|
||||||
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(
|
||||||
|
Reference in New Issue
Block a user