高效分页存储过程
2012-08-31 09:19
323 查看
create proc GetPageData
@pi int,//当前页码
@ps int//每页显示几条数据
as
begin
select * from (
select ROW_NUMBER() over(order by id) as RNum,* from userinfo
) as temp
where RNum>(@pi-1)*@ps and RNum<=@pi*@ps
end
exec GetPageData 2,2
调用
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="proName">存储过程名</param>
/// <param name="par"></param>
/// <returns></returns>
public DataTable Expro(string proName, params SqlParameter[] par)
{
SqlDataAdapter da = new SqlDataAdapter(proName, sqlCon);
da.SelectCommand.Parameters.AddRange(par);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
第二种分页2
////////////////////////////////////
create proc GetPageData2
@pi int,//当前页码
@ps int,//每页显示几条数据
@rc float output,//返回行总数
@pc float output//返回页总数
as
begin
select @rc=count(*) from userinfo
select @pc=ceiling(@rc/@ps)
select * from (
select ROW_NUMBER() over(order by id) as RNum,* from userinfo
) as temp
where RNum>(@pi-1)*@ps and RNum<=@pi*@ps
end
调用
public DataTable GetPageList(string proName,int pageIndex, int pageSize, out int rowCount, out int pageCount)
{
rowCount = 0;
pageCount = 0;
SqlCommand com = new SqlCommand(proName,sqlCon);
com.CommandType = CommandType.StoredProcedure;
SqlParameter[] par = new SqlParameter[] {
new SqlParameter("@pi",pageIndex),
new SqlParameter("@ps",pageSize),
new SqlParameter("@rc",rowCount),
new SqlParameter("@pc",pageCount)
};
par[2].Direction = ParameterDirection.Output;
par[3].Direction = ParameterDirection.Output;
com.Parameters.AddRange(par);
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt=new DataTable();
da.SelectCommand = com;
da.Fill(dt);
rowCount =Convert.ToInt32(par[2].Value);
pageCount = Convert.ToInt32(par[3].Value);
return dt;
}
}
@pi int,//当前页码
@ps int//每页显示几条数据
as
begin
select * from (
select ROW_NUMBER() over(order by id) as RNum,* from userinfo
) as temp
where RNum>(@pi-1)*@ps and RNum<=@pi*@ps
end
exec GetPageData 2,2
调用
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="proName">存储过程名</param>
/// <param name="par"></param>
/// <returns></returns>
public DataTable Expro(string proName, params SqlParameter[] par)
{
SqlDataAdapter da = new SqlDataAdapter(proName, sqlCon);
da.SelectCommand.Parameters.AddRange(par);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
第二种分页2
////////////////////////////////////
create proc GetPageData2
@pi int,//当前页码
@ps int,//每页显示几条数据
@rc float output,//返回行总数
@pc float output//返回页总数
as
begin
select @rc=count(*) from userinfo
select @pc=ceiling(@rc/@ps)
select * from (
select ROW_NUMBER() over(order by id) as RNum,* from userinfo
) as temp
where RNum>(@pi-1)*@ps and RNum<=@pi*@ps
end
调用
public DataTable GetPageList(string proName,int pageIndex, int pageSize, out int rowCount, out int pageCount)
{
rowCount = 0;
pageCount = 0;
SqlCommand com = new SqlCommand(proName,sqlCon);
com.CommandType = CommandType.StoredProcedure;
SqlParameter[] par = new SqlParameter[] {
new SqlParameter("@pi",pageIndex),
new SqlParameter("@ps",pageSize),
new SqlParameter("@rc",rowCount),
new SqlParameter("@pc",pageCount)
};
par[2].Direction = ParameterDirection.Output;
par[3].Direction = ParameterDirection.Output;
com.Parameters.AddRange(par);
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt=new DataTable();
da.SelectCommand = com;
da.Fill(dt);
rowCount =Convert.ToInt32(par[2].Value);
pageCount = Convert.ToInt32(par[3].Value);
return dt;
}
}
相关文章推荐
- 高效SQL分页存储过程
- sql server 2000 单主键高效分页存储过程 (支持多字段排序)
- 高效,海量,分页存储过程
- 高效分页存储过程
- 一个高效的数据分页的存储过程
- 专用于SqlServer2005的高效分页存储过程(支持多字段任意排序,不要求排序字段唯一)
- 通用高效分页存储过程代码
- 高效分页存储过程
- 一个高效的数据分页的存储过程
- 高效分页存储过程
- 高效分页存储过程
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- 通用高效分页存储过程代码
- Oracle 高效分页存储过程实例 含javademo
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程
- 一个高效的分页存储过程