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. Tensorflow高级封装

    Tensorflow比较灵活,但是它提供的操作比较低级,于是许多封装库应运而生. slim 导入方式 import tensorflow as tf import tensorflow.contrib ...

  2. 【LeetCode】206. Reverse Linked List (2 solutions)

    Reverse Linked List Reverse a singly linked list. click to show more hints. Hint: A linked list can ...

  3. 【虚拟化系列】VMware vSphere 5.1 简介与安装

    一. VMware vSphere 5.1简介           vSphere是VMware推出的基于云计算的新一代数据中心虚拟化套件,提供了虚拟化基础架构.高可用性.集中管理.监控等一整套解决方 ...

  4. 安装apr报错rm: cannot remove `libtoolT': No such file or directory

    直接打开/usr/local/src/apr-1.4.6/configure  把 $RM“$cfgfile” 那行删除掉 $RM“$cfgfile” 大约在 42302行 然后再重新运行  ./co ...

  5. Block(一)基础-b

    一.概述 Block是C级别的语法和运行时特性.Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存.堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block ...

  6. OPENSSL编程起步

    原文链接: http://blog.csdn.net/itmes/article/details/7711076 WINDOWS平台下OPENSSL的编译和安装使用 OPENSSL是开放源代码的,可以 ...

  7. 跟我学SharePoint 2013视频培训课程——签出、签入文档(9)

    课程简介 第9天,怎样在SharePoint 2013中签出.签入文档 视频 SharePoint 2013 交流群 41032413

  8. Cmder 设置默认打开目录、解决中文乱码

    win + alt + p //打开设置 选择Startup-Task,修改{cmd::Cmder}项,把: *cmd /k "%ConEmuDir%\..\init.bat" - ...

  9. 【Python】Windows平台下Python、Pydev连接Mysql数据库

    Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...

  10. [转]使用自定义HttpMessageConverter对返回内容进行加密

    今天上午技术群里的一个人问” 如何在 Spring MVC 中统一对返回的 Json 进行加密?”. 大部分人的第一反应是通过 Spring 拦截器(Interceptor)中的postHandler ...