PageSize类
public class PageSize
{
/// <summary>
/// ACCESS分页程序
/// </summary>
/// <param name="onpage">当前页数</param>
/// <param name="page">每页多少条记录</param>
/// <param name="datename">数据库名</param>
/// <param name="wheresql">需要过滤的条件</param>
/// <param name="orderby">需要按什么来进行按序</param>
/// <param name="datebaseID">数据库中的ID字段名</param>
/// <param name="LinkPageSize">输入输出函数</param>
/// <returns>返回SQL查询语句</returns>
public string PageSizeMain(int onpage, int page, string datename, string wheresql, string orderby, string datebaseID, out int TotalSize)
{
string TargetSql;//返回SQL字符串
int recordtotal;//总的记录数
bool isrepage;
int totalpage;//总的页数
if (wheresql.Trim() == "")//计算总的记录数
{
TargetSql = "select count(*) as countcord from " + datename;
}
else
{
TargetSql = "select count(*) as countcord from " + datename + " where " + wheresql;
}
Conn CountPage = new Conn();
OleDbDataReader rec = CountPage.ConnEnt(TargetSql);
rec.Read();
recordtotal = Convert.ToInt32(rec[0]);
rec.Close();
CountPage.CloseAll();
isrepage = true;
if (recordtotal % page == 0)//**计算总的页数
{
totalpage = recordtotal / page;
}
else
{
totalpage = recordtotal / page + 1;
isrepage = false;
}
TotalSize = totalpage;
int endpage;
if (onpage == totalpage && totalpage > 1 && isrepage == false)//判断是不是最后一页
{
page = recordtotal % ((onpage - 1) * page);
endpage = recordtotal;
}
else
{
endpage = page * onpage;
}
if (wheresql.Trim() == "")
{
if (orderby.Trim() == "")
{
TargetSql = "select * from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(page) + " " + datebaseID + " from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(endpage) + " " + datebaseID + " from " + datename + " order by " + datebaseID + " desc) order by " + datebaseID + ") order by " + datebaseID + " desc";
}
else
{
TargetSql = "select * from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(page) + " " + datebaseID + " from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(endpage) + " " + datebaseID + " from " + datename + " order by " + datebaseID + " desc) order by " + datebaseID + ") order by " + orderby + "," + datebaseID + " desc";
}
}
else
{
if (orderby.Trim() == "")
{
TargetSql = "select * from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(page) + " " + datebaseID + " from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(endpage) + " " + datebaseID + " from " + datename + " where " + wheresql + " order by " + datebaseID + " desc) order by " + datebaseID + ") order by " + datebaseID + " desc";
}
else
{
TargetSql = "select * from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(page) + " " + datebaseID + " from " + datename + " where " + datebaseID + " in (select top " + Convert.ToString(endpage) + " " + datebaseID + " from " + datename + " where " + wheresql + " order by " + datebaseID + " desc) order by " + datebaseID + ") order by " + orderby + "," + datebaseID + " desc";
}
}
return (TargetSql);
}
}