存储过程分页:

 create proc PR_PagerDataByTop
@pageIndex int,
@pageSize int,
@count int out
as
select top(@pageSize) * from dbo.userInfo where ID not in
(
select top((@pageIndex-1)*@pageSize) ID from dbo.userInfo
)
set @count = (select COUNT(1) from dbo.userInfo)

top pager

 alter proc PR_PagerDataByRow
@pageIndex int,
@pageSize int,
@count int out
as
select * from
(
select *,ROW_NUMBER() over (order by id) as xh from dbo.userInfo
)as tb2
where tb2.xh between (@pageIndex-1)*@pageSize+1 and @pageIndex*@pageSize
set @count = (select COUNT(1) from dbo.userInfo)

row_number pager

Ado.Net分页:

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

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Data;
using System.Data.SqlClient; namespace UseStoredProcedure
{
class Program
{
static void Main(string[] args)
{
string conStr = "server=.;database=MyDb;uid=sa;pwd=123";
using (SqlConnection conn = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "PR_PagerData";
cmd.Parameters.Add("@pageSize", );
cmd.Parameters.Add("@pageIndex", );
cmd.Parameters.Add("@count", ).Direction = ParameterDirection.Output;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
conn.Open();
DataSet ds = new DataSet();
da.Fill(ds);
int count = (int)cmd.Parameters["@count"].Value;
}
}
}
}
}
}

调用存储过程

EF分页:

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

 public IEnumerable<T> GetPageUserInfos<s>(int pageIndex, int pageSize, Func<T, bool> whereLmd, Func<T, s> orderLmd, out int count, bool isAsc)
{
var set = db.Set<T>();
count = set.Count();
return set.Where(whereLmd).OrderBy(orderLmd).
Skip(pageSize * (pageIndex - )).Take(pageSize);
}

Linq通用完整分页

EF增删改查:

         #region 增删改查
//增
public int Add(T model)
{
db.Set<T>().Add(model);
return db.SaveChanges();
} //删
public int Del(T model)
{
db.Set<T>().Attach(model);
db.Set<T>().Remove(model);
return db.SaveChanges();
} public int DelBy(Func<T, bool> whereLmd)
{
db.Set<T>().RemoveRange(db.Set<T>().Where(whereLmd));
return db.SaveChanges();
} //改
public int Modify(T model, params string[] propName)
{
DbEntityEntry de = db.Entry(model);
de.State = System.Data.Entity.EntityState.Unchanged;
foreach (var str in propName)
{
de.Property(str).IsModified = true;
}
return db.SaveChanges();
} //查
public IQueryable<T> GetList(Expression<Func<T, int, bool>> whereLmd)
{
return db.Set<T>().Where(whereLmd);
} //分页
public IEnumerable<T> GetPageUserInfos<s>(int pageIndex, int pageSize, Func<T, bool> whereLmd, Func<T, s> orderLmd, out int count, bool isAsc)
{
var set = db.Set<T>();
count = set.Count();
return set.Where(whereLmd).OrderBy(orderLmd).
Skip(pageSize * (pageIndex - )).Take(pageSize);
}
#endregion

EF通用增删该查泛型

TT模板:

 <#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF.Utility.CS.ttinclude"#><#@
output extension=".cs"#> <# CodeGenerationTools code = new CodeGenerationTools(this);
MetadataLoader loader = new MetadataLoader(this);
CodeRegion region = new CodeRegion(this, );
MetadataTools ef = new MetadataTools(this); string inputFile = @"..\MODEL\{模板文件名}.edmx"; EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
string namespaceName = code.VsNamespaceSuggestion(); EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this); #> using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace IDAL
{
<# // Emit Entity Types
foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
{
//fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
//BeginNamespace(namespaceName, code); #>
public partial interface I<#= entity.Name#>DAL : IBaseDAL<MODEL.<#= entity.Name#>>
{
} <# }#> }

通用子类模板

MySqlHelper:

 using System;
using System.Data;
using System.Data.SqlClient; namespace AdoNet
{
public static class SQLHelper
{
#region simplerHelper
static string strCon = System.Configuration.ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
#region 1.0 返回受影响行数
public static int ExecuteNonQuery(string sql, params SqlParameter[] sqlparams)
{
return ExecuteNonQuery(sql, CommandType.Text, sqlparams);
}
public static int ExecuteNonQuery(string sql, CommandType type, params SqlParameter[] sqlparams)
{
using (SqlConnection conn = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
try
{
conn.Open();
cmd.CommandType = type;
if (sqlparams.Length > )
{
cmd.Parameters.AddRange(sqlparams);
}
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch
{
return -;
}
}
}
}
#endregion
#region 2.0 查询单个值
public static object ExecuteScalar(string sql, params SqlParameter[] sqlparams)
{
return ExecuteScalar(sql, CommandType.Text, sqlparams);
}
public static object ExecuteScalar(string sql, CommandType type, params SqlParameter[] sqlparams)
{
using (SqlConnection conn = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
try
{
conn.Open();
cmd.CommandType = type;
if (sqlparams.Length > )
{
cmd.Parameters.AddRange(sqlparams);
}
return cmd.ExecuteScalar();
}
catch
{
return null;
}
}
}
}
#endregion
#region 3.0 查询单表
public static DataTable GetTable(string sql, params SqlParameter[] sqlparams)
{
return GetTable(sql, CommandType.Text, sqlparams);
}
public static DataTable GetTable(string sql, CommandType type, params SqlParameter[] sqlparams)
{
using (SqlConnection conn = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
try
{
conn.Open();
cmd.CommandType = type;
if (sqlparams.Length > )
{
cmd.Parameters.AddRange(sqlparams);
}
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
}
catch
{
return null;
}
}
}
}
#endregion
#endregion
}
}

MySqlHelper

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

  1. (整理)EF分页的实现

    最近做一个小功能,需要数据分页,因为小框架使用的是EF,因此查询了一下EF的分页. EF分页主要用到了skip和take两个方法: GetListBy(lamda xxxxx).skip(PageSi ...

  2. EF 分页查询优化

    按照通常的方式分页查询至少要查询数据两遍,一个操作是查询总数,另一个是查询数据,这样有些耗时 这里介绍一个基于EF的插件 EntityFramework.Extended,当然这个插件有很多的功能,比 ...

  3. EF分页中的陷阱

    (一) 前言                                                                   EF使用非常简单,但是如果使用不当就会误入EF陷阱中. ...

  4. .NET Core使用EF分页查询数据报错:OFFSET语法错误问题

    在Asp.Net Core MVC项目中使用EF分页查询数据时遇到一个比较麻烦的问题,系统会报如下错误: 分页查询代码: ) * condition.PageSize).Take(condition. ...

  5. PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8 **** ...

  6. 10.bootstrap分页,点击哪个分页号,哪个分页号就active

    1.分页,点击哪个分页号,哪个分页号就active <nav> <ul class="pagination"> <li><a href=& ...

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

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

  8. 基于layPage分页插件浅析两种分页方式

    最近在开发过程中经常用到分页,今天挤出些时间来捋一捋自己的经验 在web开发中,一般显示数据列表页时,我们会用到分页控件来显示数据.采用分页一般基于两种不同的需求,一种是数据量不算很大,但是在页面展示 ...

  9. EF分页问题探讨之 OrderBy

    EntityFramework 应用场景 最近被应用程序中页面加载慢的问题所折磨,看似容易的问题,其实并不容易(已经持续两天时间了),经过“侦查”,发现了两个“嫌疑犯”: EntityFramewor ...

随机推荐

  1. Activemq消息持久化

    官方文档: http://activemq.apache.org/persistence.html ActiveMq持久化相关配置:/usr/local/apache-activemq-5.11.1/ ...

  2. 更改ubuntu mysql data目录位置

    很多时候,mysql的数据会非常大,数据默认放在/var/lib/mysql,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便可以应付mysql数据增 ...

  3. Asp.net Core WebApi 返回JSON自动驼峰格式化问题

    从今天开始,正式进入Asp.net Core的开发,估计最近一段时间会经常写博客了,记录学些Asp.net Core中遇到的各种坑. 第一个问题:通过core编写的webapi,默认返回的json会自 ...

  4. 使用wireshark抓取wcf生成的soap消息

    在使用wcf的时候想看下生成的soap的格式是怎样的,就想到了抓包. 平时用惯的抓包工具是需要破解,另外有时会不太好用. 于是就想起来用wireshark. 首先遇到几个问题: 1.wireshart ...

  5. MassTransit RabbitMQ 参考文档

    Autofac http://docs.autofac.org/en/latest/lifetime/startup.html RabbitMQ http://www.rabbitmq.com/dot ...

  6. 模拟登录神器之PHP基于cURL实现自动模拟登录类

    一.构思 从Firefox浏览器拷贝cURL命令(初始页.提交.提交后) 自动分析curl形成模拟登录代码 默认参数:ssl/302/gzip 二.实现 接口 (一)根据curl信息执行并解析结果 p ...

  7. UNIX环境高级编程笔记之高级I/O

    本章说明了很多高级I/O功能: 非阻塞I/O——发一个I/O操作,不使其阻塞,记录锁,STREAMS机制 I/O多路转接——select和poll函数 readv和writev函数,以及存储映射I/O ...

  8. Linux探秘之用户态与内核态

    一. Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核).内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程 ...

  9. SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'

    问题描述 按照微软官方教程尝试使用SSAS做OLAP时,出现如下错误信息: Severity Code Description Project File Line Suppression State ...

  10. Nginx模块开发时unknown directive "echo"的处理

    实际上,Nginx并没有echo这个指令,所以你贸然使用时,自然会提示说无法识别的指令,处理方法有两个: 方法一是: 从下面连接下载echo-nginx-module模块并安装: https://gi ...