sqlserver2000分页
alter PROCEDURE pagination
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名
@PageSize int , -- 页尺寸
@PageIndex int, -- 页码
@doCount bit , -- 返回记录总数, 非 0 值则返回
@OrderType bit , -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)
--@result varchar(1000) output
AS
declare @strSQL varchar(5000) -- 主语句
declare @strTmp varchar(110) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
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
--如果@OrderType不是0,就执行降序,这句很重要!
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 @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代码
set @strSQL='select top '+str(@PageSize)+' '+@strGetFields+' 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)+' '+@strGetFields+' from ['+@tblName+'] where ['+@fldName+']'+@strTmp+'(['+@fldName+']) from (select top '
+str((@PageIndex-1)*@PageSize) +' ['+@fldName+'] from ['+@tblName+'] where '+@strWhere+' '+@strOrder+') as tblTmp) and '+@strWhere+' '+@strOrder
end
/*
*/
--set @result=@strSQL
end
exec(@strSQL)
GO
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt=GetCustomersData("Customers","CustomerID,CompanyName","CustomerID",10,2,0,1,"").Tables[0];
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
private DataSet GetCustomersData(string tblName, string strGetFields, string fldName, int PageSize, int PageIndex, int doCount, int OrderType, string strWhere)
{
string conns = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString();
string connString = ConfigurationSettings.AppSettings["NorthwindConnectionString"];
SqlConnection conn = new SqlConnection(connString);
SqlCommand comm = new SqlCommand("pagination",conn);
comm.Parameters.Add(new SqlParameter("@tblName",SqlDbType.VarChar));//表名
comm.Parameters[0].Value = tblName;
comm.Parameters.Add(new SqlParameter("@strGetFields", SqlDbType.VarChar));//返回的列
comm.Parameters[1].Value = strGetFields;
comm.Parameters.Add(new SqlParameter("@fldName", SqlDbType.VarChar));//排序的字段名
comm.Parameters[2].Value = fldName;
comm.Parameters.Add(new SqlParameter("@PageSize", SqlDbType.Int));//页尺寸
comm.Parameters[3].Value = PageSize;
comm.Parameters.Add(new SqlParameter("@PageIndex", SqlDbType.Int));//页码
comm.Parameters[4].Value = PageIndex;
comm.Parameters.Add(new SqlParameter("@doCount", SqlDbType.Int));//是否返回记录总数,0为不返回,1为返回
comm.Parameters[5].Value = doCount;
comm.Parameters.Add(new SqlParameter("@OrderType", SqlDbType.Int));//设置排序类型,0为升序,非0为降序
comm.Parameters[6].Value = OrderType;
comm.Parameters.Add(new SqlParameter("@strWhere", SqlDbType.VarChar));//where语句
comm.Parameters[7].Value = strWhere;
comm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter dataAdapter = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
return ds;
}
declare @answer varchar(1000)
exec pagination 'Customers','CustomerID,CompanyName','CustomerID',10,2,0,1,'CustomerID>''A''',@answer output
select @answer
----------------------------------------------------------------------
select top 10 CustomerID,CompanyName
from [Customers]
where [CustomerID]>
(
select max([CustomerID])
from (
select top 10 [CustomerID]
from [Customers]
order by [CustomerID] asc
) as tblTmp
)
order by [CustomerID] asc
select top 10 CustomerID,CompanyName
from [Customers]
where [CustomerID]<
(
select min([CustomerID])
from (
select top 10 [CustomerID]
from [Customers]
order by [CustomerID] desc
) as tblTmp
)order by [CustomerID] desc
select top 10 CustomerID,CompanyName
from [Customers]
where [CustomerID]<
(
select min([CustomerID])
from
(
select top 10 [CustomerID]
from [Customers] where CustomerID>'A' order by [CustomerID] desc) as tblTmp) and CustomerID>'A' order by [Cu
转载于:https://www.cnblogs.com/yidianfeng/archive/2008/12/27/1363668.html
sqlserver2000分页相关推荐
- sqlserver2000分页存储过程(原创)
刚刚用了博客园,感觉这里的气氛真的很好,发布这几天写的一个分页存储过程,请dudu多多关照,请各位大牛指正. 功能:海量优化,支持任何字段排序,可支持随机取数据,导出所有数据功能,用了id(整型)比较 ...
- hibernate dialect 方言 sqlserver2000 的方言
2019独角兽企业重金招聘Python工程师标准>>> hibernate没有sqlserver2000的方言,在分页的时候会报错,你可以用 net.sf.hibernate.dia ...
- Sqlserver存储过程和C#分页类简化你的代码!
在最近的项目中,由于要用到自定义分页的功能,本人就在网上找了个存储过程.结合C#写了个分页类.由于本人第一次写文章.写得不好,大家不要扔鸡蛋.. 下面是存储过程(sqlserver2000下通过) - ...
- 手把手教你JavaEE的分页查询、分页展示,有了这个,你的项目又多了一个谈资
前言: 我们在写项目的时候,往往有一些项目的信息展示.而展示的数据量往往是很大的,这时候,加入一个分页的功能往往是最理想的选择. 先简单描述一下功能: 根据你的数据量和指定的页面展示数据条数,进行查询 ...
- django自带的分页功能
django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...
- Mysql分页order by数据错乱重复
公司用的是Mybatis,发现分页和排序时直接传递参数占位符用的都是 ,由于,由于,由于有SQL注入风险,要改为#,但是封装page类又麻烦,所以直接使用了 pageHelper 插件了,方便快捷,但 ...
- Django 分页和使用Ajax5.3
分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...
- [JAVA EE] JPA 查询用法:自定义查询,分页查询
项目已上传:https://codechina.csdn.net/qq_36286039/javaee 自定义查询 问题:内置的crud功能不满足需求时如何添加自定义查询? 几种自定义查询方法 方法命 ...
- datatable java实现分页_jQuery Datatable - 使用Php的服务器端处理数据分页
我有jquery datatable分页的问题(服务器端处理) . 例如,我在数据库中有 24 条记录 . 计数正确显示,总分页也正确显示 . 当我点击 Next or 2nd page 时,它会根据 ...
- Oracle分页存储过程
CREATE OR REPLACE Procedure Soa_Getpager(p_Pagesize Int, --每页记录数p_Pageno Int, --当前页码,从 1 开始p_Sqlcols ...
最新文章
- Dropout也能自动化了,谷歌大神Quoc Le等人利用强化学习自动找寻模型专用Dropout...
- WebPart(SharePoint)中如何使用自定义的Javascript和css样式
- 如何配置SAP Analytics Cloud到SAP Cloud for Customer的连接
- 当推荐系统遇到物联网...
- CactiEZ V10.1安装及配置
- CAj格式文件打开方法
- 毕业论文之——实习总结10篇(包含心得体会)
- 阿里云域名和ip绑定具体内容步骤
- springboot系列(二十七):如何实现word携带图片导出?这你得会|超级详细,建议收藏
- 大学物理实验长度的测量实验报告_大学物理实验长度测量法实验报告完整版
- 一次不常见的等待事件:RECO进程enq: DR - contention
- 面向过程与面向对象有什么区别
- 红牛农场java代码_Java面向对象程序设计实验指导模板代码(171页)-原创力文档...
- 14位IT高管及技术大牛谈Java的生态系统
- 安卓熊猫视频压缩器v1.1.51高级版
- 掌控板教程 | 搞定 Siri 语音控制,只要半小时!
- 速轩三维 - 白光/蓝光/拍照式三维扫描仪
- 政行为导致合同不能履行,违约方是否要承担民事违约
- a as as big rat_励志英语名言-20页
- 时光机APP隐私协议
热门文章
- 文件的HANDLE转化为FILE*!!!
- com.microsoft.sqlserver.jdbc.SQLServerException: Socket closed 或者 该连接已关闭
- Net系列框架-Dapper+AutoFac 基于接口
- 代码审查(咳咳......又降温了啊....!!!!)
- ABAP中的枚举对象
- leetcode_sql_1,176,177
- [Unity3D]Unity3D圣骑士模仿游戏开发传仙灵达到当局岛
- JFreeChart学习示例
- 102 模拟ssh远程执行命令
- nginx虚拟机无法访问解决