sqlhelper.cs
public DataTable TabPageQuery(string sql, SqlParameter[] paras, CommandType ct)
{
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(sqlHelper.conn))
{
conn.Open();
cmd = new SqlCommand(sql,conn);
cmd.Parameters.AddRange(paras);
cmd.CommandType = ct;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
conn.Close();
}
return dt;
}
rpInfo.cs
/* 获取信息总数 */
public int CalRecordCount()
{
SqlConnection conn = new SqlConnection(sqlHelper.conn);
SqlCommand cmd;
int res;
string cmdText = "select count(1) from EnterInfo";
conn.Open();
using (cmd = new SqlCommand(cmdText,conn))
{
res = int.Parse(cmd.ExecuteScalar().ToString());
}
conn.Close();
return res;
}
public DataTable InfoPage(int pagesize, int pageindex)
{
DataTable dt = new DataTable();
string CmdText = "pro_infoPage";
SqlParameter[] param = { new SqlParameter("@pagesize",pagesize),
new SqlParameter("@pageindex",pageindex)
};
dt = new sqlHelper().TabPageQuery(CmdText,param,CommandType.StoredProcedure);
return dt;
}
aspx.cs
页面加载时:这个rpInfo是repeater的名字
rpInfo.DataSource = new rpInfo().InfoPage(anpInfo.PageSize,anpInfo.CurrentPageIndex);
rpInfo.DataBind();
aspnetpager:
protected void anpInfo_PageChanged(object sender, EventArgs e)
{
anpInfo.RecordCount =rp.CalRecordCount();
rpInfo.DataSource = new rpInfo().InfoPage(anpInfo.PageSize, anpInfo.CurrentPageIndex);
rpInfo.DataBind();
}
存储过程:
create proc pro_infoPage
@pageindex int,
@pagesize int
AS
declare @sql varchar(8000)
set @sql=
'select top '+ltrim(@pagesize)+' * from EnterInfo where id not in(select top '+ltrim((@pageindex-1)*@pagesize)+' id from EnterInfo)'
exec (@sql)
GO