码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2014-10-05 23:28:39      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   sp   div   

存储过程分页:

bubuko.com,布布扣
 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
bubuko.com,布布扣
 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个存储过程):

bubuko.com,布布扣
 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):

bubuko.com,布布扣
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通用完整分页

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

标签:style   blog   http   color   io   os   ar   sp   div   

原文地址:http://www.cnblogs.com/neverc/p/4007402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!