/// <summary>
/// 生成取得記錄總數(shù)的語(yǔ)句
/// </summary>
/// <param name="sql">原查詢語(yǔ)句</param>
/// <returns>取得記錄總數(shù)的語(yǔ)句</returns>
private string MakeRecordCountsSql(string sql)
{
string sqlGetRecordCounts = "select Count(*) from (" + sql + ") as TempTable";
return sqlGetRecordCounts;
}
/// <summary>
/// 生成分頁(yè)查詢語(yǔ)句
/// </summary>
/// <param name="sql">原查詢語(yǔ)句</param>
/// <param name="orderField">用于分頁(yè)排序的字段</param>
/// <param name="pageNumber">頁(yè)碼</param>
/// <param name="pageSize">頁(yè)面記錄數(shù)量</param>
/// <param name="recordCounts">記錄總數(shù)</param>
/// <param name="pageCounts">頁(yè)面總數(shù)</param>
/// <returns>分頁(yè)查詢語(yǔ)句</returns>
private string MakePagingSql(string sql, string orderField, int pageNumber, int pageSize, int recordCounts, out int pageCounts)
{
// 計(jì)算頁(yè)面數(shù)量
if (Convert.ToInt32(pageNumber) < 1) pageNumber = 1;
if (Convert.ToInt32(pageSize) < 1) pageSize = 1;
pageCounts = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(recordCounts) / Convert.ToDouble(pageSize)));
string sqlQuery = "";
if (pageNumber == 1)
{
sqlQuery = "select top " + pageSize + " * from (" + sql + ") as TempTable order by " + orderField + " desc";
}
else
{
sqlQuery = "select top " + pageSize + " * from (" + sql + ") as TempTable where " + orderField + " < (select min(" + orderField + ") as MinID from ( select top " + (pageNumber - 1) * pageSize + " * from (" + sql + ") as MaxTempTable order by " + orderField + " desc) as MinTempTable) order by " + orderField + " desc";
}
return sqlQuery;
}