存储过程分页:

 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. 奇怪吸引子---ShimizuMorioka

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  2. 机器学习技法--学习笔记04--Soft SVM

    背景 之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开.但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的.所以,需要在hard SVM上添加容错机制,使得可以容 ...

  3. Apache Error: Invalid command ‘Allow’, perhaps misspelled or defined by a module not included in the server configuration

    在一个Window Server 2008R2系统上使用Apache架设了一个PHP的网站项目 在配置Apache的过程中出现了以下问题   根据上面的提示说是没有相应的权限,那就在虚拟主机里进行了配 ...

  4. 40页PPT勾画“互联网颠覆性思维”----诠释互联网思维

    本文PPT内容涉及移动互联网的三个分支——移动电商.在线教育和新媒体. 不同领域一直是可以相互借鉴.相互渗透.相互学习的,在盈利模式和思维方式上有很多是共通的.  

  5. parallels无法启动之大乌龙-流水账版

    欢迎访问我的blog:blog.thinkinside.me     早上到公司,像往日一样,开电脑倒茶喝水. 回到座位打开parallels desktop,发现不对,打开PD非常的慢.显示正在初始 ...

  6. WPF 获取程序路径的一些方法,根据程序路径获取程序集信息

    一.WPF 获取程序路径的一些方法方式一 应用程序域 //获取基目录即当前工作目录 string str_1 = System.AppDomain.CurrentDomain.BaseDirector ...

  7. SqlServer查看各个表所占空间大小的sql

    CREATE TABLE [dbo].#tableinfo( 表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, 记录数 [int] NULL, 预留空间 ...

  8. .net_ckeditor+ckfinder的图片上传配置

    CKEditor和CKFinder的最新版可以到官方网站(http://cksource.com)上下载获得. 把以上两个资源放到网站的根目录: /CKEditor 和 /CKFinder (不区分大 ...

  9. android 开发 - 对图片进行虚化(毛玻璃效果,模糊)

    概述 IPAD,IPHONE上首页背景的模糊效果是不是很好看,那么在 Android中如何实现呢.我通过一种方式实现了这样的效果. 开源库名称:anroid-image-blur 一个android ...

  10. 搬家至个人独立博客virson.cn

    最近正在将博客园的文章搬到自己的独立博客,以后基本上不会在博客园更新文章了,欢迎光临我的新博客:www.virson.cn,博客内容持续更新中……