asp.net 分页存储过程+分页类+分页控件
分页存储过程如下代码Pages.sql:
CREATE PROCEDURE Pages
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名
@pageSize int = 10, -- 页尺寸
@pageIndex int = 1, -- 页码
@doCount bit = 0, -- 返回记录总数, 非 0 值则返回
@orderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) = '', -- 查询条件 (注意: 不要加 where)
@primaryKey varchar(60)
AS
declare @strSQL varchar(5000) -- 主语句
declare @strOrder varchar(400) -- 排序类型
declare @strTmpFld varchar(10)
set @strTmpFld = 'TmpFld' --临时字段名!!!重要!!!
if @doCount != 0
begin
if @strWhere !=''
set @strSQL = 'select count(*) as Total from '+ @tblName +' where '+ @strWhere
else
set @strSQL = 'select count(*) as Total from '+ @tblName +''
end
--以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都
--是@doCount为0的情况
else
begin
if @orderType != 0
set @strOrder = ' order by '+ @fldName +' desc ' --如果@orderType不是0,就执行降序,这句很重要!
else
set @strOrder = ' order by '+ @fldName +' asc '
if @pageIndex = 1
begin
if @strWhere != ''
set @strSQL = 'select top ' + str(@pageSize) + ' ' + @strGetFields + ' from ' + @tblName +' where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@pageSize) + ' ' + @strGetFields + ' from ' + @tblName +' '+ @strOrder
--如果是第一页就执行以上代码,这样会加快执行速度
end
else
begin
--以下代码赋予了@strSQL以真正执行的SQL代码
if @strWhere = ''
set @strSQL = 'select top ' + str(@pageSize) + ' ' + @strGetFields + ' from ' + @tblName + ' where ' + @primaryKey + ' not in (' + 'select top ' + str((@pageIndex-1)*@pageSize) + ' ' + @primaryKey + ' from '+ @tblName + ' ' + @strOrder + ')'+ @strOrder
else
set @strSQL = 'select top ' + str(@pageSize) + ' ' + @strGetFields + ' from '
相关文档:
1. 使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:
a.aspx的C#代码
private void Button1_Click(object se ......
1.查询功能:
描述:通常在网页上根据点击查询按钮获得所要结果
例:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author:冰霜
-- Create date: 2009-09-04
-- Description:查询
-- =============================================
Alter PROCEDURE ......
aspx页面中事件的执行顺序
1.asp.net的请求过程,以及对应的处理请求的dll
客户的请求页面由aspnet_isapi.dll这个动态连接库来处理,把请求的aspx文件发送给CLR进行编译执行,然后把Html流返回给浏览器
2.页面事件(按照事件的执行顺序排列)
Page_Init:初始化值或连接
Page_Load:主要使用IsPostBack,该事件主要执行 ......
ViewResult:一般呈现某个aspx文件,由View方法返回。
RedirectToResult:使浏览器重定向,由Redirect方法返回。
RedirectToRouteResult:直接交给下一个Action,由RedirectToAction方法返回。 ......