asp.net结合aspnetpager使用SQL2005的存储过程分页
asp.net结合aspnetpager使用SQL2005的存储过程分页
发布时间:2016-12-29 来源:查字典编辑
摘要:SQL2005的存储过程:复制代码代码如下:setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERPROC...

SQL2005的存储过程:

复制代码 代码如下:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

ALTER PROCEDURE [dbo].[P_GetPagedReCord]

(@startIndex INT, -- 开始索引号

@endindex INT, -- 结束索引号

@tblName varchar(255), -- 表名

@fldName varchar(255), -- 显示字段名

@OrderfldName varchar(255), -- 排序字段名

@IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回

@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序

@strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)

)

AS

declare @strSQL varchar(6000) -- 主语句

declare @strTmp varchar(100) -- 临时变量

declare @strOrder varchar(400) -- 排序类型

if @OrderType!=0

Begin

set @strOrder='Desc'

End

else

Begin

set @strOrder='Asc'

End

set @strSQL ='WITH orderList AS ( '+

'SELECT ROW_NUMBER() OVER (ORDER BY '+@OrderfldName+' '+@strOrder+')AS Row, '+@fldName+' '+

'from '+@tblName

if @strWhere!=''

set @strSQL = @strSQL+' where ' + @strWhere

set @strSQL=@strSQL+')'+

'SELECT '+@fldName+' '+

'FROM orderlist '+

'WHERE Row between '+str(@startIndex)+' and '+str(@endIndex)+''

if @IsReCount != 0

Begin

set @strSQL = ' select count(1) as Total from [' + @tblName + ']'

if @strWhere!=''

set @strSQL = @strSQL+' where ' + @strWhere

End

--print(@strSQL)

exec (@strSQL)

使用中的关键代码:

复制代码 代码如下:

//翻页

protected void anpager_PageChanged(object sender, EventArgs e)

{

bind();

}

string strWhere = " 1 = 1 ";

ETHaiNan.BLL.ET_Video bll = new ETHaiNan.BLL.ET_Video();

this.anpager.RecordCount = int.Parse(bll.GetRecordCount(strWhere).Tables[0].Rows[0][0].ToString());

this.anpager.PageSize = 10;

this.anpager.AlwaysShow = true;

DataSet ds = bll.GetList(anpager.StartRecordIndex, anpager.EndRecordIndex,strWhere, 0);

this.rpt.DataSource = ds;

ds.Dispose();

数据访问层:

复制代码 代码如下:

/// <summary>

/// 分页获取数据列表

/// </summary>

public DataSet GetList(int startIndex, int endindex, string strWhere, int IsReCount)

{

SqlParameter[] parameters = {

new SqlParameter("@startIndex", SqlDbType.Int),

new SqlParameter("@endindex", SqlDbType.Int),

new SqlParameter("@tblName", SqlDbType.VarChar, 255),

new SqlParameter("@fldName", SqlDbType.VarChar, 255),

new SqlParameter("@OrderfldName", SqlDbType.VarChar, 255),

new SqlParameter("@IsReCount", SqlDbType.Bit),

new SqlParameter("@OrderType", SqlDbType.Bit),

new SqlParameter("@strWhere", SqlDbType.VarChar,1000)

};

parameters[0].Value = startIndex;

parameters[1].Value = endindex;

parameters[2].Value = "ET_Video";

parameters[3].Value = "VideoID,Video_Name,Video_TypeID,Video_OrderCode,Video_Type,Video_AddDate";

parameters[4].Value = "VideoID";

parameters[5].Value = IsReCount;

parameters[6].Value = 1;

parameters[7].Value = strWhere;

return DbHelperSQL.RunProcedure("P_GetPagedReCord", parameters, "ds");

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类