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#分页类的更多相关文章

  1. Sql Server分页储存过程

    --分页储存过程if exists (select * from sys.procedures where name='Page')drop proc Pagegocreate proc Page@P ...

  2. 基于C#在Mongodb的Skip-Limit和Where-Limit的分页对比 并且含mongodb帮助类的源码

    最近在设计的日志服务中需要用到Mongodb这个Nosql数据库(不知道Mongodb的点我),由于是用于纯存日志,而且日志量巨大,百万千万级的,所以需要用到它的分页查询. 不过LZ也是刚刚接触这个数 ...

  3. MySQL 储存过程-原理、语法、函数详细说明

    Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命 ...

  4. C#函数与SQL储存过程

    一点点小认识作为memo,求指正. C#的函数与SQL的储存过程有很多的相似性, 它们都是一段封闭的代码块,来提高代码的重用性,虽然现在复制粘贴很方便,但是我们在写多个函数的时候频繁的复制粘贴相同的内 ...

  5. laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)

    laravel基础课程---15.分页及验证码(lavarel分页效果如何实现) 一.总结 一句话总结: 数据库的paginate方法:$data=\DB::table("user" ...

  6. 【转】oracle查询用户表,函数,储存过程,

    ◆Oracle查询用户表空间:select * from user_all_tables ◆Oracle查询所有函数和储存过程:select * from user_source ◆Oracle查询所 ...

  7. SQL获取所有数据库名、表名、储存过程以及参数列表

    SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...

  8. 理解Lucene索引与搜索过程中的核心类

    理解索引过程中的核心类 执行简单索引的时候需要用的类有: IndexWriter.ƒDirectory.ƒAnalyzer.ƒDocument.ƒField 1.IndexWriter IndexWr ...

  9. JDBC和JPA调用储存过程 接收存储过程有返回值

    ============jdbc==========================================--java代码:一个输出参数--String connURL = null;Con ...

随机推荐

  1. Distributed systems theory for the distributed systems engineer

    Gwen Shapira, SA superstar and now full-time engineer at Cloudera, asked a question on Twitter that ...

  2. keras的训练引擎:train_array.py和train_generator.py

    keras的Model支持两种模式的训练: 直接传入数组,最终会调用train_array.py中的fit_loop()函数 直接传入生成器,最终会调用train_generator.py中的fit_ ...

  3. /struts-tags not found ,/struts-dojo-tags not found 上线后异常解决方案

    上线到2003上后发现2个问题:1 缺少/struts-tags2 缺少/struts-dojo-tags在xp上不用直接指定这些文件的位置,但在其他的系统可能无法自动找到它的路径,一定要明确指定在w ...

  4. Docker 简单查看name和ip

    原文地址:https://blog.csdn.net/wen_1108/article/details/78282268 查看docker name: sudo docker inspect -f=' ...

  5. 【struts2】值栈(后篇)

    在值栈(前篇)我们学习了值栈的基本知识,接下来,来看看在程序中具体如何使用值栈. 1 ActionContext的基本使用 1.1 如何获取? 要获取ActionContext有两个基本的方法,如果在 ...

  6. libevent的问题

    问题: nginx error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: N ...

  7. MySQL -- Innodb是如何处理自增列的

    对于那些向带有自增列的表中插入行的语句,Innodb提供一种可配置的锁定机制,这种锁定机制可以显著提高SQL语句的可伸缩性和性能. Innodb中为了使用自增机制,自增列必须是索引的部份,从而可以使用 ...

  8. Linux下查找指定日期的文件

    一.背景 Linux服务器的一个目录里,每天产生海量的文件.为了防止磁盘被写满. 决定每天删除部分老文件.OK,问题来了,如何过滤出指定日期的文件? 二.强大的Linux 一行代码搞定: ls --f ...

  9. A标签href属性详解--记录八

    1.去掉<a>标签的下划线 <ul style=" list-style-type:none; margin:0;color:Gray; font-size:11px;ma ...

  10. 安装ganglia过程中出现错误 perl(RRDp) is needed by rrdtool-1.2.30-1.el5.rf.x86_64

    用rpm -ivh *.rpm安装ganglia的rpm包,然后出现下面的错误: warning: rrdtool-1.2.30-1.el5.rf.x86_64.rpm: Header V3 DSA/ ...