一个常用的分页类
THX P9!
using System;
using System.Data;
using System.Data.SqlClient;
namespace AoYing
{
/// <summary>
/// pagination 的摘要说明。
///数据分页类
/// </summary>
public class DeRecordSet
{
private int iPage;
private int PageSize;
private string Table;
private string Term;
private string Field;
private int PageCount;
private int RecordCount;
private SqlConnection Conn;
private string Sql;
DataTable Dt = new DataTable();
public DeRecordSet()
{
iPage = 1;
PageSize = 10;
PageCount = 0;
RecordCount = 0;
Table = "";
Term = " 1 = 1 AND ";
Field = "";
}
region 初始化
public string table
{
set
{
Table = value;
}
get
{
return Table;
}
}
public string term
{
set
{
Term = value;
}
get
{
return Term;
}
}
public int ipage{
set{
iPage = value;
}
get{
return iPage;
}
}
public int pagesize
{
set
{
PageSize = value;
}
get
{
return PageSize;
}
}
public string field
{
set
{
Field = value;
}
get
{
return Term;
}
}
public int page_count
{
get
{
return PageCount;
}
}
public int record_count
{
get
{
return RecordCount;
}
}
public SqlConnection conn
{
set
{
Conn = value;
}
}
public string sql{
get{
return Sql;
}
}
endregion
public DataTable GetRecordSet()
{
if(Table != "" && Field != "")
{
Sql = "SELECT COUNT(*) FROM "+Table+" WHERE "+Term;
SqlDataAdapter Rs = new SqlDataAdapter(Sql,Conn);
Dt = new DataTable();
Rs.Fill(Dt);
RecordCount=Int32.Parse(Dt.Rows[0][0].ToString());
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
{
PageCount = RecordCount / PageSize + 1 ;
}
if(iPage > PageCount){iPage = PageCount;}
if(PageCount > 0)
{
if (iPage == 1)
{
Sql ="SELECT TOP "+PageSize+" "+Field+" FROM "+Table+" WHERE "+Term+" ORDER BY ID DESC";
}
else
{
Sql = "SELECT TOP "+PageSize+" "+Field+" FROM "+Table+" WHERE "+Term;
Sql += " AND ID < (SELECT MIN([ID]) AS [ID] FROM (SELECT TOP "+((iPage-1)*PageSize)+" [ID] FROM "+Table+" WHERE "+Term+" ORDER BY ID DESC ) AS TEMP_TABLE) ORDER BY ID DESC ";
}
Rs = new SqlDataAdapter(Sql,Conn);
Dt = new DataTable();
Rs.Fill(Dt);
Rs.Dispose();
Conn.Dispose();
}
}
return Dt;
}
public void Dispose(){
Dt.Clear();
Dt.Dispose();
}
}
}
/////***************使用参考-
DeRecordSet Rs = new DeRecordSet();
Rs.conn = conn;
Rs.table = "News";
Rs.term = Term;
Rs.pagesize = 20;
Rs.field = "ID,Title";
Rs.ipage = Page;
NewsList.DataSource = Rs.GetRecordSet();
NewsList.DataBind();
PageCut.Text = PageList(Page,Rs.page_count,FieldName,FieldValue);
using System;
using System.Data;
using System.Data.SqlClient;
namespace AoYing
{
/// <summary>
/// pagination 的摘要说明。
///数据分页类
/// </summary>
public class DeRecordSet
{
private int iPage;
private int PageSize;
private string Table;
private string Term;
private string Field;
private int PageCount;
private int RecordCount;
private SqlConnection Conn;
private string Sql;
DataTable Dt = new DataTable();
public DeRecordSet()
{
iPage = 1;
PageSize = 10;
PageCount = 0;
RecordCount = 0;
Table = "";
Term = " 1 = 1 AND ";
Field = "";
}
region 初始化
public string table
{
set
{
Table = value;
}
get
{
return Table;
}
}
public string term
{
set
{
Term = value;
}
get
{
return Term;
}
}
public int ipage{
set{
iPage = value;
}
get{
return iPage;
}
}
public int pagesize
{
set
{
PageSize = value;
}
get
{
return PageSize;
}
}
public string field
{
set
{
Field = value;
}
get
{
return Term;
}
}
public int page_count
{
get
{
return PageCount;
}
}
public int record_count
{
get
{
return RecordCount;
}
}
public SqlConnection conn
{
set
{
Conn = value;
}
}
public string sql{
get{
return Sql;
}
}
endregion
public DataTable GetRecordSet()
{
if(Table != "" && Field != "")
{
Sql = "SELECT COUNT(*) FROM "+Table+" WHERE "+Term;
SqlDataAdapter Rs = new SqlDataAdapter(Sql,Conn);
Dt = new DataTable();
Rs.Fill(Dt);
RecordCount=Int32.Parse(Dt.Rows[0][0].ToString());
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
{
PageCount = RecordCount / PageSize + 1 ;
}
if(iPage > PageCount){iPage = PageCount;}
if(PageCount > 0)
{
if (iPage == 1)
{
Sql ="SELECT TOP "+PageSize+" "+Field+" FROM "+Table+" WHERE "+Term+" ORDER BY ID DESC";
}
else
{
Sql = "SELECT TOP "+PageSize+" "+Field+" FROM "+Table+" WHERE "+Term;
Sql += " AND ID < (SELECT MIN([ID]) AS [ID] FROM (SELECT TOP "+((iPage-1)*PageSize)+" [ID] FROM "+Table+" WHERE "+Term+" ORDER BY ID DESC ) AS TEMP_TABLE) ORDER BY ID DESC ";
}
Rs = new SqlDataAdapter(Sql,Conn);
Dt = new DataTable();
Rs.Fill(Dt);
Rs.Dispose();
Conn.Dispose();
}
}
return Dt;
}
public void Dispose(){
Dt.Clear();
Dt.Dispose();
}
}
}
/////***************使用参考-
DeRecordSet Rs = new DeRecordSet();
Rs.conn = conn;
Rs.table = "News";
Rs.term = Term;
Rs.pagesize = 20;
Rs.field = "ID,Title";
Rs.ipage = Page;
NewsList.DataSource = Rs.GetRecordSet();
NewsList.DataBind();
PageCut.Text = PageList(Page,Rs.page_count,FieldName,FieldValue);
浙公网安备 33010602011771号