C#调用SQL Server分页存储过程
以SQL Server2012提供的offset ..rows fetch next ..rows only为例
e.g.
表名:Tab1
----------------------------------
ID Name
1 tblAttributeGroupDetail
2 tblAttributeGroup
3 tblAttribute
.......
50 tblBRItemTypeAppliesTo
51 tblBRItemProperties
52 tblBRItem
53 tblBRBusinessRule
54 Test
--创建分页存储过程 rTabByCondition
USE [ExampleDB]
GO
if OBJECT_ID('rTabByCondition','P') is not null
drop procedure rTabByCondition
GO
create procedure [dbo].[rTabByCondition](
@PageCount int=1 --页数
,@PageSize int=10 --页显示记录数
,@Rowcount int=0 output --总记录数
)
as
set nocount on;
declare @Rows int;
select * from dbo.Tab1 order by ID offset (@PageCount-1)*@PageSize rows fetch next @PageSize rows only
set @Rows=@@ROWCOUNT
select @Rowcount=count(*) from dbo.Tab1;
return @Rows
go
declare @i int,@j int
exec @i=[rTabByCondition] @PageCount=6,@PageSize=10,@Rowcount=@j output
select @i as "@Rowcount",@j as "Return_Value"
go
显示结果:
--打开Visual Studio—创建项目—选择【控制台应用程序】
#region Directives
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
#endregion namespace SQLStoredProcedure2
{
class Program
{
static void Main(string[] args)
{
SqlConnection thisConnection = new SqlConnection(@"Server=(Local)\SQL16;Integrated Security=True;Database=ExampleDB");
thisConnection.Open();
SqlCommand thisCommend = thisConnection.CreateCommand();
thisCommend.CommandType = CommandType.StoredProcedure;
thisCommend.CommandText = "rTabByCondition";
thisCommend.Parameters.AddWithValue("@PageCount", "6");//页数
thisCommend.Parameters.AddWithValue("@PageSize", "10");//页显示记录数
SqlParameter paraOut = thisCommend.Parameters.Add("@Rowcount", SqlDbType.Int);//输出参数定义
paraOut.Direction = ParameterDirection.Output;
SqlParameter paraRet = thisCommend.Parameters.Add("return_value", SqlDbType.Int);//返回值
paraRet.Direction = ParameterDirection.ReturnValue;
SqlDataReader thisReader = thisCommend.ExecuteReader();
while (thisReader.Read())
{
Console.WriteLine("ID:{0}\tName:{1}", thisReader[0], thisReader[1]);
}
thisReader.Close();
thisConnection.Close();
Console.WriteLine("Rows:{0};\tReturn_Value:{1};", paraOut.Value, paraRet.Value);
Console.WriteLine("Program finished,press Enter/Return to continue:");
Console.ReadLine();
}
}
}
显示效果:
C#调用SQL Server分页存储过程的更多相关文章
- (转)jdbc 调用 sql server 的存储过程时“该语句没有返回结果集”的解决方法
本文转载自:http://hedyn.iteye.com/blog/856040 在JDBC中调用SQL Server中的存储过程时出现如下异常: com.microsoft.sqlserver.jd ...
- Delphi 调用SQL Server 2008存储过程
1.表结构如下(预算数据明细表): CREATE TABLE [dbo].[BA_FeeDetail]( [ID] [int] IDENTITY(1,1) NOT NULL, [FeeDeptID] ...
- Java调用SQL Server的存储过程详解
转载自Microsoft的官方文档 http://msdn2.microsoft.com/zh-cn/library/ms378995.aspx收录于 www.enjoyjava.net/f25 本文 ...
- (转)Java调用SQL Server的存储过程详解
本文转载自:http://dev.yesky.com/128/8088128.shtml 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序 ...
- Java调用SQL Server的存储过程详解(转)
1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: 以下是引用片段:{call proce ...
- 分页系列之一:SQL Server 分页存储过程
以下为最基本的代码结构,SQL Server 2012 开始支持 CREATE PROCEDURE procXXX @Page int, --当前页码,从1开始 @PageSize int --每页记 ...
- sql server 分页存储过程
----------------------分页存储过程------------------------------------------------------------------------ ...
- [转]Sql Server 分页存储过程
本文转自: 版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且 ...
- c++ builder调用sql server的存储过程进行数据的下载和上传
小小的几行代码,在这里搞了一天.好好的一个周六过的无比的难受.代码很简单,但是主要原因是因为在用合作商的软件上传数据的时候有些框框没有勾选. come on....... 1.用两个控件ADOConn ...
随机推荐
- MacOS下如何进行Git的冲突(Conflict)处理
Git在做merge时经常碰到冲突的问题,多数情况都是用IDE中集成的"解决冲突"工具解决了,但有时不能依赖IDE时,就得回过头来去搞清楚Git的一些基础操作了. mergetoo ...
- 钉钉服务器端SDK PHP版
项目地址: https://github.com/web3d/DingtalkSDK.git 钉钉官方有些简单的demo,但封装得有些粗糙. 开发的过程中,做了一个有点小意思的工具:json数据转换为 ...
- 将AJAX返回值纵向排序赋值给Table标签
/*下面是所有拼接这个表的代码*/ 1 function HandelAjaxReturnDataForContentTable(data) { var shareHtml = "" ...
- easyui datagrid 点击表头的事件
在用datagrid的时候我们可能要用到点击表头来触发一个function,这里有个简单的例子. 首先你得有个能用的datagrid. <div> <table id=&quo ...
- PHP发短信 PEAR 包:Services_Sms
PHP发短信 PEAR 包:Services_Sms 对于这种第三方库,PHP官方称之为PEAR,需要按照PEAR标准开发(标准URI). PEAR的优势:一键安装到php/lib/php目录,req ...
- HTML表单提交数据中application/x-www-form-urlencoded和multipart/form-data的区别
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型. 下边是说明: application/x-www-form-urlen ...
- go语言条件语句 if else
示例: if a < 5 { return 0 } else { return 1 } 关于条件语句,需要注意以下几点: 条件语句不需要使用括号将条件包含起来(): 无论语句体内有几条语 ...
- jQuery.clean()方法源码分析(一)
在jQuery 1.7.1中调用jQuery.clean()方法的地方有三处,第一次就是在我之前的随笔分析jQuery.buildFramgment()方法里面的,其实还是构造函数的一部分,在处理诸如 ...
- SharePoint 2010 系统账户没完全控制权限了
网上下载了一个试用版的wsp包,安装部署后感觉不好就卸载掉了.坑爹的事情发生了,系统账户登录网站集竟然没完全控制权限了.连添加列表项的权限都没有了. 去管理中心查看,网站集管理员,没发现问题. 更坑爹 ...
- SAP 中的用户类型
在使用 SU01 维护用户时,在登录数据选项卡中会要求选择用户类型,一般我们都选择第一项 Dialog,但是其他几个选项有什么作用呢?下面我们就一一解释. 对话用户顾名思义,就是需要通过 SAP GU ...