手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net结合aspnetpager使用SQL2005的存储过程分页
asp.net结合aspnetpager使用SQL2005的存储过程分页
摘要: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结合aspnetpager使用SQL2005的存储过程分页】相关文章:

asp.net中利用ashx实现图片防盗链的原理分析

asp.net SqlDataReader绑定Repeater

asp.net access添加返回自递增id的实现方法第1/3页

asp.net读取excel中的数据并绑定在gridview

asp.net SAF 中缓存服务的实现第1/5页

asp.net aspnetpager分页统计时与实际不符的解决办法

asp.net 生成数字和字母组合的随机数

asp.net gridview多页时的批量删除

asp.net 结合mysql存储过程进行分页代码

asp.net中IDataParameter调用存储过程的实现方法

精品推荐
分类导航