asp.net分页存储过程汇总

  • O1_499015
    了解作者
  • 421.5KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-03-31 02:02
    上传日期
asp.net分页存储过程汇总 asp.net分页存储过程汇总 asp.net分页存储过程汇总
asp.net分页存储过程汇总.rar
  • 分页存储过程汇总
  • KMCT分页控件与存储过程分页完美结合---存储过程分页篇 - 男人就要对自己狠一点! - 博客园_files
  • ScriptResource.axd
    21.1KB
  • ScriptResource(1).axd
    82KB
  • 1.jpg
    8.9KB
  • 1400357.jpg
    631B
  • xml.gif
    404B
  • click.htm
    1.7KB
  • ScriptResource(2).axd
    28.8KB
  • common2.css
    115B
  • inf.js
    27.1KB
  • js
    3KB
  • ShowHidden.js
    2.5KB
  • WebResource.axd
    20.3KB
  • common.css
    2.2KB
  • logo.gif
    43B
  • JpegImage.jpg
    2.2KB
  • CAEL4P84.htm
    690B
  • show_ads.js
    29.2KB
  • common.js
    1.4KB
  • 104.htm
    3.6KB
  • rss.gif
    130B
  • style.css
    12.4KB
  • 也谈存储过程分页 - kwklover - 博客园_files
  • CAPSRQBP_files
  • sma6.js
    3.3KB
  • abg-zh-CN-100c-ffffff.png
    1KB
  • graphics.js
    6.7KB
  • ScriptResource.axd
    21.1KB
  • image.png
    3.6KB
  • ScriptResource(1).axd
    82KB
  • 327876.js
    1.8KB
  • xml.gif
    404B
  • click.htm
    1.7KB
  • ScriptResource(2).axd
    28.8KB
  • go.htm
    0B
  • common2.css
    115B
  • js
    3KB
  • ShowHidden.js
    2.5KB
  • WebResource.axd
    20.3KB
  • CAPSRQBP.htm
    12.5KB
  • RCS.htm
    1.4KB
  • common.css
    2.2KB
  • logo.gif
    43B
  • JpegImage.jpg
    2.2KB
  • 8324.jpg
    631B
  • show_ads.js
    29.2KB
  • common.js
    1.4KB
  • 104.htm
    3.6KB
  • rss.gif
    130B
  • style.css
    12.4KB
  • 存储过程分页-SQL - 凡事第一反应是找方法,而非是找借口 - 博客园_files
  • ScriptResource.axd
    21.1KB
  • ScriptResource(1).axd
    82KB
  • CAFLLF2Q.htm
    1.6KB
  • xml.gif
    404B
  • click.htm
    1.7KB
  • ScriptResource(2).axd
    28.8KB
  • common2.css
    115B
  • js
    3KB
  • ShowHidden.js
    2.5KB
  • WebResource.axd
    20.3KB
  • common.css
    2.2KB
  • JpegImage.jpg
    2.2KB
  • 1415112.jpg
    631B
  • xml_small.gif
    404B
  • show_ads.js
    29.2KB
  • common.js
    1.4KB
  • 104.htm
    3.6KB
  • style.css
    8.4KB
  • 2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) - hertcloud - /New InterFace/ - 博客园_files
  • CA5GALXV_files
  • sma6.js
    3.3KB
  • abg-zh-CN-100c-ffffff.png
    1KB
  • graphics.js
    6.7KB
  • ScriptResource.axd
    21.1KB
  • CA5GALXV.htm
    12.7KB
  • 301327.jpg
    631B
  • silence.gif
    1.6KB
  • ScriptResource(1).axd
    82KB
  • ExpandedBlockStart.gif
    79B
  • CA4XIFGX.htm
    1.5KB
  • xml.gif
    404B
  • click.htm
    1.7KB
  • ScriptResource(2).axd
    28.8KB
  • common2.css
    115B
  • js
    3KB
  • ShowHidden.js
    2.5KB
  • WebResource.axd
    20.3KB
  • ExpandedBlockEnd.gif
    68B
  • common.css
    2.2KB
  • JpegImage.jpg
    2.2KB
  • dot.gif
    59B
  • ContractedBlock.gif
    80B
  • show_ads.js
    29.2KB
  • None.gif
    59B
  • InBlock.gif
    70B
  • common.js
    1.4KB
  • 104.htm
    3.6KB
  • style.css
    8.9KB
内容介绍
SqlServer通用存储过程(1)-千万级数据库高速分页显示 /* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: exec GetRecordFromPage news,newsid,10,100000 news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引。 */ /* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明: @tblName 包含数据的表名 @fldName 关键字段名 @PageSize 每页记录数 @PageIndex 要获取的页码 @OrderType 排序类型, 0 - 升序, 1 - 降序 @strWhere 查询条件 (注意: 不要加 where) 作  者: 铁拳 邮  箱: unjianhua_kki@sina.com">sunjianhua_kki@sina.com 创建时间: 2004-07-04 修改时间: 2004-07-04 */ CREATE PROCEDURE GetRecordFromPage @tblName varchar(255), -- 表名 @fldName varchar(255), -- 字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序 @strWhere varchar(2000) = '' -- 查询条件 (注意: 不要加 where) AS declare @strSQL varchar(6000) -- 主语句 declare @strTmp varchar(1000) -- 临时变量 declare @strOrder varchar(500) -- 排序类型 if @OrderType != 0 begin set @strTmp = "<(select min" set @strOrder = " order by [" + @fldName +"] desc" end else begin set @strTmp = ">(select max" set @strOrder = " order by [" + @fldName +"] asc" end set @strSQL = "select top " + str(@PageSize) + " * from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "([" + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" + @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)" + @strOrder if @strWhere != '' set @strSQL = "select top " + str(@PageSize) + " * from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "([" + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" + @fldName + "] from [" + @tblName + "] where " + @strWhere + " " + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder if @PageIndex = 1 begin set @strTmp = "" if @strWhere != '' set @strTmp = " where (" + @strWhere + ")" set @strSQL = "select top " + str(@PageSize) + " * from [" + @tblName + "]" + @strTmp + " " + @strOrder end exec (@strSQL) GO ----------- 改一下,看看这样是不是更好一点? /* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明: @tblName 包含数据的表名 @fldName 关键字段名 @PageSize 每页记录数 @PageIndex 要获取的页码 @IsCount 是否要取得记录数 @OrderType 排序类型, 0 - 升序, 1 - 降序 @strWhere 查询条件 (注意: 不要加 where) */ CREATE PROCEDURE pGO_GetRecordFromPage @tblName varchar(255), -- 表名 @fldName varchar(255), -- 字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @IsCount bit = 0, -- 返回记录总数, 非 0 值则返回 @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序 @strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where) AS declare @strSQL varchar(6000) -- 主语句 declare @strTmp varchar(500) -- 临时变量 declare @strOrder varchar(400) -- 排序类型 -- 如果是查询记录总数,直接使用Count(0)函数 if @IsCount != 0 begin if @strWhere != '' set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere else set @strSQL = 'select count(*) as Total from [' + @tblName + '] ' end --如果是想查询记录,则 else begin if @PageIndex = 1 begin set @strTmp = '' if @strWhere != '' set @strTmp = ' where ' + @strWhere set @strSQL = 'select top ' + str(@PageSize) + ' * from [' + @tblName + ']' + @strTmp + ' ' + @strOrder end else begin --如果是降序查询…… if @OrderType != 0 begin set @strTmp = '<(select min' set @strOrder = ' order by [' + @fldName +'] desc' end --如果是升序查询…… else begin set @strTmp = '>(select max' set @strOrder = ' order by [' + @fldName +'] asc' end if @strWhere != '' set @strSQL = 'select top ' + str(@PageSize) + ' * from [' + @tblName + '] where [' + @fldName + ']' + @strTmp + '([' + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' [' + @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' ' + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder else set @strSQL = 'select top ' + str(@PageSize) + ' * from [' + @tblName + '] where [' + @fldName + ']' + @strTmp + '([' + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' [' + @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)' + @strOrder end end exec (@strSQL) GO ----- 可以实现多表查询。 -- ============================================= -- 数据分页的存储过程 -- 记录号在 TempIDKey_Num 字段中 -- 调用的例子: 表示 从结果中第3行开始的5条记录。 -- T-SQL:EXECUTE proTest N'select top 100 percent * from orders', 3,5 -- ASP.NET(C#): -- <%@ Page Language="C#" %> -- <%@ Import Namespace="System.Data" %> -- <%@ Import Namespace="System.Data.SqlClient" %> -- <Script Runat="Server"> -- void Page_Load( Object s, EventArgs e ) -- { -- SqlConnection myConnection; -- SqlCommand myCommand; -- myConnection = new SqlConnection( "Server=(local);uid=sa;pwd=11;Database=Northwind" ); -- myCommand = new SqlCommand( "proTest", myConnection ); -- myCommand.CommandType = CommandType.StoredProcedure; -- myCommand.Parameters.Add("@strSql","Select top 30 * from orders"); -- myCommand.Parameters.Add("@startRow",10); -- myCommand.Parameters.Add("@maxRows",15); -- myConnection.Open(); -- myDataGrid.DataSource = myCommand.ExecuteReader(); -- myDataGrid.DataBind(); -- myConnection.Close(); -- } -- </Script> -- <html><head><title>DataGrid</title></head><body> -- <form Runat="Server"> -- <asp:DataGrid id="myDataGrid" Runat="Server"/ rel='nofollow' onclick='return false;'> -- </form> -- </body></html> -- ============================================= IF EXISTS (SELECT name FROM sysobjects WHERE name = N'proTest' AND type = 'P') DROP PROCEDURE proTest GO CREATE PROCEDURE proTest @strSql as nvarchar(2000) = null, --要查询语句如 Select top 30 * from orders @startRow as int = null, --从其开始的从零开始的记录号 @maxRows as int = null --要检索的最大记录数 AS DECLARE @stopRow as int set @stopRow = @startRow + @maxRows set @strSql = N' Select top ' + CAST(@StopRow as nvarchar(9)) + '*, IDENTITY(int,1,1) AS TempIDKey_Num ' + ' INTO #New_Table ' + ' FROM( ' + @strSql + ') A ' + ' Select * From #New_Table Where TempIDKey_Num>=' + CAST(@StartRow as nvarchar(9)) + ' DROP TABLE #New_Table ' execute sp_executesql @strSql GO
评论
    相关推荐