存储过程分页 Ado.Net分页 EF分页 满足90%以上

存储过程分页:

 1 create proc PR_PagerDataByTop
 2 @pageIndex int,
 3 @pageSize int,
 4 @count int out
 5 as
 6 select top(@pageSize) * from dbo.userInfo where ID not in
 7 (
 8     select top((@pageIndex-1)*@pageSize) ID from dbo.userInfo
 9 )
10 set @count = (select COUNT(1) from dbo.userInfo)

top pager

 1 alter proc PR_PagerDataByRow
 2 @pageIndex int,
 3 @pageSize int,
 4 @count int out
 5 as
 6 select * from
 7 (
 8     select *,ROW_NUMBER() over (order by id) as xh from dbo.userInfo
 9 )as tb2
10 where tb2.xh between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize
11 set @count = (select COUNT(1) from dbo.userInfo)

row_number pager

Ado.Net分页:

这里只上传一个例子(同理:可以调用上面2个存储过程):

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 using System.Data;
 7 using System.Data.SqlClient;
 8
 9 namespace UseStoredProcedure
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             string conStr = "server=.;database=MyDb;uid=sa;pwd=123";
16             using (SqlConnection conn = new SqlConnection(conStr))
17             {
18                 using (SqlCommand cmd = new SqlCommand())
19                 {
20                     cmd.Connection = conn;
21                     cmd.CommandType = CommandType.StoredProcedure;
22                     cmd.CommandText = "PR_PagerData";
23                     cmd.Parameters.Add("@pageSize", 12);
24                     cmd.Parameters.Add("@pageIndex", 1);
25                     cmd.Parameters.Add("@count", 1).Direction = ParameterDirection.Output;
26                     using (SqlDataAdapter da = new SqlDataAdapter(cmd))
27                     {
28                         conn.Open();
29                         DataSet ds = new DataSet();
30                         da.Fill(ds);
31                         int count = (int)cmd.Parameters["@count"].Value;
32                     }
33                 }
34             }
35         }
36     }
37 }

调用存储过程

EF分页:

Linq(EF实际也是调用Ado.Net):

1         public IQueryable<T> GetPageUserInfos<s>(int pageIndex, int pageSize, Func<T, bool> whereLmd, Func<T, s> orderLmd, out int count, bool isAsc)
2         {
3             var set = db.Set<T>();
4             count = set.Count();
5             return set.Where(whereLmd).OrderBy(orderLmd).
6                 Skip(pageSize * (pageIndex - 1)).Take(pageSize).AsQueryable();
7         }

Linq通用完整分页

时间: 2024-10-07 20:51:59

存储过程分页 Ado.Net分页 EF分页 满足90%以上的相关文章

EF分页中的陷阱

(一) 前言                                                                   EF使用非常简单,但是如果使用不当就会误入EF陷阱中.下面讲解了几种分页方式的对比,以及各种方式的缺陷. (二) 陷阱一   Expression<Func<T, TResult>> 和Func<T, TResult>的区别        说明:System.Linq.Expressions.Expression<Fun

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

android listview左右滑动分页(viewpager嵌套listview进行分页),焦点图带圆焦点

1.先上图后说话 2.代码 package com.example.exmp; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import and

php分页函数示例代码,php分页代码实现方法

php分页函数示例代码 分享一例php分页函数代码,用此函数实现分页代码很不错. 代码,php分页函数. <?php /* * Created on 2011-07-28 * Author : LKK , http://lianq.net * 使用方法: require_once('mypage.php'); $result=mysql_query("select * from mytable", $myconn); $total=mysql_num_rows($result);

自做 数据分页,执行SQL操作数据分页,SQL 分页

WMS.Web.YZMManagement.YZMOrderControl.YZMOrderControl_List.aspx ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33        function ListGrid() {            $("#Button1").click();        } <a id="bt

Mybatis最入门---分页查询(拦截器分页原理及实现)

[一步是咫尺,一步即天涯] 前文,我们演示了物理分页的Sql实现方式,这种方式使得我们每次在编写查询服务时,不断的重复造轮子.这样的代码实现方式就显得十分的笨拙了.本文是Mybatis分页查询的最后一片内容,我们将介绍基于拦截器的,精巧的实现方式.在阅读这篇文章之前,强烈建议各位看官能够先阅读上文.这样就能对下文我们提及的各种对象及他们之间的关系有一个清晰的关系.好了,废话不多讲,开始我们的正文部分吧. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,SQ

使用Mybatis分页插件PageHelper时的分页问题

使用Mybatis分页插件PageHelper时的分页问题 1对1查询,分页正常 1对多查询,如使用左右连接查询则会导致结果的总记录条数,子记录条数会叠加到主记录条数,导致数据不对称. 总结:使用mybatis时,在一对多的查询并且需要分页的时候需要使用子查询形式. 1) 主记录的resultMap <resultMap id="artWorkMap" type="Artwork"> <id column="id" jdbcTy

ADO.NET,EF,Nhibernate比较

题目传送门 题意: 给出一棵树,求离每个节点最远的点的距离 思路: 把无根树转化成有根树分析, 对于上面那棵树,要求距结点2的最长距离,那么,就需要知道以2为顶点的子树(蓝色圈起的部分,我们叫它Tree(2)),距顶点2的最远距离L1 还有知道2的父节点1为根节点的树Tree(1)-Tree(2)部分(即红色圈起部分),距离结点1的最长距离+dist(1,2) = L2,那么最终距离结点2最远的距离就是max{L1,L2} f[i][0],表示顶点为i的子树的,距顶点i的最长距离 f[i][1]

C#集合篇,在业务背景下(***产品升级管理):依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量巧用,属性实际运用,唯一性验证

QQ:1187362408 欢迎技术交流和学习 关于系统产品升级报告管理,业务需求: TODO: 1,升级报告管理:依据各县区制定升级报告(关联sAreaCode,给每个地区观看具体升级报告信息) 2,运用的技术:依赖注入,变量声明,三元表达式,常用字符串相关操作方法,ADO.NET,EF机制,T4模板自动生成实体类,ref变量与可null变量巧用,属性实际运用,唯一性验证,url传递中文编码和解码问题 讲解篇:1,服务端aspx,2,服务端后台返回数据(这里采用服务器端程序:aspx.cs)