sql2005分页储存过程和C#分页类
1、sql2005分页储存过程
--sql2005,qq524365501
create Procedure up_page2005 @TableName varchar(100), -- 表名称
@File varchar(1000), -- 列
@praname varchar(50), -- 主键,用于统计总数
@OrderFile varchar(100), -- 排序字段 ,例如 id asc
@PageSize varchar(10), -- 每页数量
@PageIndex varchar(10), -- 页码
@docount int = 0, -- 返回记录总数, 非 0 值则返回
@Where varchar(1000) -- 查询条件必须带and,例如 and passed=1 and deleted=0 as
declare @strsql varchar(8000) -- 主语句
declare @strsqlcount varchar(1000) -- 统计语句
------------统计总条数begin-----------
if @docount != 0
begin
if @Where != ''
set @strsqlcount ='select count(' + @praname + ' ) as total from ' + @TableName +' where 1=1 '+@Where+';'
else
set @strsqlcount ='select count(' + @praname + ' ) as total from ' + @TableName+';'
end
--以上代码的意思是如果@docount传递过来的不是0,就执行总数统计
else
begin
set @strsqlcount='';
end
------------统计总条数end-----------
------------查询主数据begin--------- set @strsql = 'select ' + @File + ' from (select *,ROW_NUMBER() over(order by ' + @OrderFile + ') as ''rowNumber'' from ' + @TableName + ' where 1=1 ' + @Where + ' ) temp where rowNumber between (((' + @PageIndex + ' - 1) * ' + @PageSize + ')+1) and (' + @PageIndex + '*'+ @PageSize+');'
exec(@strsql+@strsqlcount)
2、C#分页类
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.SqlClient; /// <summary>
///PagerClass 的摘要说明
/// </summary>
public class PagerClass
{
/// <summary>
/// 分页数据,返回DataSet,tablse[0]=主数据,tablse[1]=总条数
/// </summary>
/// <param name="DBname">表名称,可以是多个</param>
/// <param name="DBdata">返回的字段名称</param>
/// <param name="IDname">主键,用于统计总数用</param>
/// <param name="orderby">排序</param>
/// <param name="pageSize">每页数量</param>
/// <param name="pageNow">当前页</param>
/// <param name="where">条件</param>
/// <param name="doCount">0=不统计总条数,1=统计总条数</param>
/// <returns></returns>
public static DataSet pageData(string DBname, string DBdata, string IDname, string orderby, int pageSize, int pageNow, string where, int doCount)
{
DataSet ds = new DataSet();
try
{
SqlParameter[] parameters = {
new SqlParameter("@TableName", SqlDbType.VarChar,),
new SqlParameter("@File", SqlDbType.VarChar,),
new SqlParameter("@praname", SqlDbType.VarChar,),
new SqlParameter("@OrderFile", SqlDbType.VarChar,),
new SqlParameter("@PageSize", SqlDbType.VarChar,),
new SqlParameter("@PageIndex", SqlDbType.VarChar,),
new SqlParameter("@docount", SqlDbType.Int),
new SqlParameter("@Where", SqlDbType.VarChar,),
};
parameters[].Value = DBname;
parameters[].Value = DBdata;
parameters[].Value = IDname;
parameters[].Value = orderby;
parameters[].Value = pageSize;
parameters[].Value = pageNow;
parameters[].Value = doCount;
parameters[].Value = where;
ds = DbHelperSQL.RunProcedure("up_page2005", parameters, "ds");
}
catch
{
return ds;
}
return ds;
}
}
sql2005分页储存过程和C#分页类的更多相关文章
- Sql Server分页储存过程
--分页储存过程if exists (select * from sys.procedures where name='Page')drop proc Pagegocreate proc Page@P ...
- 基于C#在Mongodb的Skip-Limit和Where-Limit的分页对比 并且含mongodb帮助类的源码
最近在设计的日志服务中需要用到Mongodb这个Nosql数据库(不知道Mongodb的点我),由于是用于纯存日志,而且日志量巨大,百万千万级的,所以需要用到它的分页查询. 不过LZ也是刚刚接触这个数 ...
- MySQL 储存过程-原理、语法、函数详细说明
Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命 ...
- C#函数与SQL储存过程
一点点小认识作为memo,求指正. C#的函数与SQL的储存过程有很多的相似性, 它们都是一段封闭的代码块,来提高代码的重用性,虽然现在复制粘贴很方便,但是我们在写多个函数的时候频繁的复制粘贴相同的内 ...
- laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
laravel基础课程---15.分页及验证码(lavarel分页效果如何实现) 一.总结 一句话总结: 数据库的paginate方法:$data=\DB::table("user" ...
- 【转】oracle查询用户表,函数,储存过程,
◆Oracle查询用户表空间:select * from user_all_tables ◆Oracle查询所有函数和储存过程:select * from user_source ◆Oracle查询所 ...
- SQL获取所有数据库名、表名、储存过程以及参数列表
SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...
- 理解Lucene索引与搜索过程中的核心类
理解索引过程中的核心类 执行简单索引的时候需要用的类有: IndexWriter.Directory.Analyzer.Document.Field 1.IndexWriter IndexWr ...
- JDBC和JPA调用储存过程 接收存储过程有返回值
============jdbc==========================================--java代码:一个输出参数--String connURL = null;Con ...
随机推荐
- 自定义cnblogs样式小结
写在前面: 博客模版(皮肤)很多, 这里选择了一套相对"干净"的模版, 这套模版本身已经很好了, 简约大方, 在此基础上进行改动一下. 1.页面背景图源自网络. 2.回到顶部i ...
- centos中执行apt-get命令提示apt-get command not found
先说结论: 在centos下用yum install xxx yum和apt-get的区别: 一般来说著名的linux系统基本上分两大类: RedHat系列:Redhat.Centos.Fedora ...
- JavaScript escape() unescape() decodeURI()函数对字符串进行编码解码
定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数 描述 string 必需.要被转义或编码的字符串. 返回值 已 ...
- iOS block分析
block是代码块,其本质和变量类似.不同的是代码块存储的数据是一个函数体.使用Block,就可以像其他标准函数一样,传入参数,并得到返回值. 可以把Block当做Objective-C的匿名函数,B ...
- 线程同步之mutex和Semaphore
表示之前对semaphore信号量木有神码概念. 比较纳闷这玩意要干嘛,好吧继续stackflow: Mutex can be released only by thread that had acq ...
- 一个web.Config或app.Config自定义段configSections的示例
一个web.Config或app.Config自定义段configSections的示例 越来越觉得,直接用配置文件app.Config或web.Config配置应用系统的运行参数,比自己做一个xml ...
- PreparedStatement的用法及优点
jdbc(java database connectivity,java数据库连接)的api中的主要的四个类之一的java.sql.statement要求开发者付出大量的时间和精力.在使用statem ...
- js中文乱码问题,编码设为utf-8,但还是乱码问题。
dw中编辑js的时候使用另存为菜单,在存储的时候勾选上一个叫[包括Unicode签名(BOM)(S)]的选项,然后存储.再次在浏览器源码中查看的时候js的中文就正常显示了,查看属性,编码也是UTF-8 ...
- Linux引导启动程序 - boot
主要描述 boot/目录中的三个汇编代码文件,见列表 3-1 所示.正如在前一章中提到的,这三个 文件虽然都是汇编程序,但却使用了两种语法格式.bootsect.s 和 setup.s 采用近似于 I ...
- java后台list集合传值到前台,再取值的几种方法
1.在jsp页面中嵌套 java代码: 首先jsp页面中导入java的工具类 <%@ page language="java" import="java.util. ...