mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
-
This commit is contained in:
parent
09a5a2b9ee
commit
7f9b3a8f68
@ -465,6 +465,11 @@ namespace SqlSugar
|
||||
{
|
||||
if (pageIndex == 0)
|
||||
pageIndex = 1;
|
||||
if (QueryBuilder.PartitionByValue.IsValuable())
|
||||
{
|
||||
QueryBuilder.ExternalPageIndex = pageIndex;
|
||||
QueryBuilder.ExternalPageSize = pageSize;
|
||||
}
|
||||
QueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
||||
QueryBuilder.Take = pageSize;
|
||||
return ToDataTable();
|
||||
@ -483,6 +488,11 @@ namespace SqlSugar
|
||||
{
|
||||
if (pageIndex == 0)
|
||||
pageIndex = 1;
|
||||
if (QueryBuilder.PartitionByValue.IsValuable())
|
||||
{
|
||||
QueryBuilder.ExternalPageIndex = pageIndex;
|
||||
QueryBuilder.ExternalPageSize = pageSize;
|
||||
}
|
||||
QueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
||||
QueryBuilder.Take = pageSize;
|
||||
return ToList();
|
||||
|
@ -34,6 +34,8 @@ namespace SqlSugar
|
||||
#region Splicing basic
|
||||
public bool IsCount { get; set; }
|
||||
public int? Skip { get; set; }
|
||||
public int ExternalPageIndex { get; set; }
|
||||
public int ExternalPageSize { get; set; }
|
||||
public int? Take { get; set; }
|
||||
public string OrderByValue { get; set; }
|
||||
public object SelectValue { get; set; }
|
||||
@ -236,27 +238,33 @@ namespace SqlSugar
|
||||
}
|
||||
var isRowNumber = Skip != null || Take != null;
|
||||
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.Replace("{$:OrderByString:$}", isRowNumber? (this.IsCount?null: rowNumberString): null);
|
||||
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, (!isRowNumber && this.OrderByValue.IsValuable()) ? GetOrderByString : null);
|
||||
sql.Replace("{$:OrderByString:$}", isRowNumber ? (this.IsCount ? null : rowNumberString) : null);
|
||||
if (IsCount) { return sql.ToString(); }
|
||||
if (Skip != null && Take == null)
|
||||
return ToPageSql(sql.ToString(),this.Take,this.Skip);
|
||||
|
||||
}
|
||||
|
||||
protected virtual string ToPageSql(string sql,int? take,int? skip)
|
||||
{
|
||||
if (skip != null && take == null)
|
||||
{
|
||||
return string.Format(PageTempalte, sql.ToString(), Skip.ObjToInt() + 1, long.MaxValue);
|
||||
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(), 1, Take.ObjToInt());
|
||||
return string.Format(PageTempalte, sql.ToString(), 1, take.ObjToInt());
|
||||
}
|
||||
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(), skip.ObjToInt() + 1, skip.ObjToInt() + take.ObjToInt());
|
||||
}
|
||||
else
|
||||
{
|
||||
return sql.ToString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public virtual string ToJoinString(JoinQueryInfo joinInfo)
|
||||
{
|
||||
return string.Format(
|
||||
|
Loading…
Reference in New Issue
Block a user