您的位置:首页 > 编程语言 > ASP

名校导航AspNetPager存储过程分页总结

2010-03-17 09:49 253 查看
1,DAL中SQLHelper.cs调用的DataSet

/// <summary>
/// return a dataset
/// </summary>
/// <param name="connectionString">一个有效的数据库连接字符串</param>
/// <param name="cmdType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
/// <param name="cmdText">存储过程的名字或者 T-SQL 语句</param>
/// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
/// <returns>return a dataset</returns>
public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand();
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
catch
{
conn.Close();
throw;
}
}

2用到了两个存储过程

--(1)FamousSchool_Select_Image

------------------------------------

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create proc [dbo].[FamousSchool_Select_Image]
@pageIndex int,
@pageSize int
AS
declare @indexTable table (id int identity(1,1), nid int)
declare @pageLowerBound int
declare @pageUpperBound int
set @PageLowerBound=(@pageIndex-1)*@pageSize
set @PageUpperBound=@PageLowerBound+@pageSize
set rowcount @PageUpperBound
insert into @indextable(nid) select Id from FaShoollNateNews
select * from FaShoollNateNews f,@indextable t where f.Id=t.nid and t.id>@PageLowerBound and t.id<=@PageUpperBound and f.ShoolImage is not null order by OrderLevel asc

------------------------------------

--(2)FamousSchool_Select_ImageCount

------------------------------------

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create proc [dbo].[FamousSchool_Select_ImageCount]
AS
begin
select count(*) from FaShoollNateNews where ShoolImage is not null
end

------------------------------------

3,DAL中方法

/// <summary>
/// ProfessGetAll查询所有学校图片信息-名校导航-分页
/// </summary>
/// <param name="pageIndex">当前页索引</param>
/// <param name="pageSize">当前页显示的行目数</param>
/// <returns></returns>
public DataSet FaShoolNateImage(int pageIndex, int pageSize)
{
SqlParameter[] paras=new SqlParameter[2];
paras[0] = new SqlParameter("@pageIndex",pageIndex);
paras[1] = new SqlParameter("@pageSize",pageSize);
return SqlHelper.ExecuteDataSet(SqlHelper.ConnectionString, CommandType.StoredProcedure, "FamousSchool_Select_Image", paras);
}
/// <summary>
/// 得到查询的所有记录数值-分页
/// </summary>
/// <returns></returns>
public object FaShoolNateImageCount()
{
return SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.StoredProcedure, "FamousSchool_Select_ImageCount", null);
}

4,WebUI层绑定代码

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using UserInfo.BLL;
using UserInfo.DAL;
using UserInfo.Model;
using System.Data.SqlClient;
namespace FrameWork.web.HightShool
{
public partial class FaShNavgateIndex : System.Web.UI.Page
{
HightShoolNewsBll bll = new HightShoolNewsBll();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AspNetPager1.RecordCount = int.Parse(bll.HightSchoolImageCount().ToString());
DataList1.DataSource = bll.HightSchoolImage(AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize);
DataList1.DataBind();
}
}

protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
AspNetPager1.RecordCount = int.Parse(bll.HightSchoolImageCount().ToString());
DataList1.DataSource = bll.HightSchoolImage(AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize);
DataList1.DataBind();
}

}
}
5,AspNetPager样式

<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
onpagechanged="AspNetPager1_PageChanged" PageSize="8"
AlwaysShowFirstLastPageNumber="True" FirstPageText="首页" LastPageText="最后一页"
NextPageText="下一页" PageIndexBoxType="DropDownList" PrevPageText="上一页"
AlwaysShow="True" ShowPageIndexBox="Always" TextAfterPageIndexBox="页"
TextBeforePageIndexBox="转到"
CustomInfoHTML="共%PageCount%页,当前为第%CurrentPageIndex%页,每页%PageSize%条"
ShowCustomInfoSection="Right">
</webdiyer:AspNetPager>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: