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. (原)torch,caffe,python中读入数据的默认范围

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6554388.html 之前torch(image.load).caffe(默认的).python(使用 ...

  2. nullpointerxception——处理思路

    概念: 1.所谓的指针,就是java中的对象的引用.比如String s;这个s就是指针.2.所谓的空指针,就是指针的内容为空.比如上面的s,如果令它指向null,就是空指针.3.所谓的空指针异常,就 ...

  3. Lua初学

    Lua很火啊,而且跟C,c++可以无缝结合,表示很给力,算是我的第三门语言吧,哈哈! 在官网上下载了源码了,和windows版的,表示编译器也很给力,直接可以用SciTE就可以写代码了. a = 1; ...

  4. Zabbix触发器支持的函数说明

    原文出处:https://www.zabbix.com/documentation/2.0/manual/appendix/triggers/functions 译者: pengyao abschan ...

  5. CentOS7下解决ifconfig command not found

    原文地址:https://blog.csdn.net/ryu2003/article/details/78492127 注:本办法仅限于可联网的机器,即在安装时设置了IP地址和DNS可正常上网. 解决 ...

  6. SQL表之间复制数据、选出随机几条数据、删除重复数据、取得自增长列等操作

    --表之间数据复制 SELECT* INTO yozhu FROM yo --复制一份表 SELECT* INTO yozhu1 FROM yo where 1<>1 --只复制表结构,无 ...

  7. 安卓获取ListView、GridView等滚动的距离(高度)

    public int getScrollY() { View c = mListView.getChildAt(0); if (c == null) { return 0; } int firstVi ...

  8. golang学习 ---并发获取多个URL

    package main import ( "fmt" "io" "io/ioutil" "net/http" &quo ...

  9. 两种方法实现js页面隔几秒后跳转,及区别

    这里需要用到window的两个对象方法,setInterval()和setTimeout() 一. 区别: 1.  setInterval(code,millisec)  周期性(millisec单位 ...

  10. 自动化无线网破解工具wifite2

    自动化无线网破解工具wifite2 wifite是一款自动化wifi密码破解工具,特点是支持多个wep.wpa加密的wifi网络,不支持windows和osx. wifite的特点是可以同时攻击多个采 ...