分页查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页查询相关的知识,希望对你有一定的参考价值。
--SQL存储过程
--分页+显示
--创建分页+查询存储过程
create proc fruit_show
--分页需要(三个参数: pageindex当前页码 pagesize每页需要显示的记录数 pagecount总记录数(为输出参数)) 模糊查询参数:name
@pageindex int,
@pagesize int,
@name varchar(50),
@pagecount int out
as
--查询总记录数 因为总记录数是数据库给的 所以我们采取的把总记录数赋值给输出参数pagecount 因为模糊查询name是从前台获取的 所以是把@name这个输入参数的值给予数据库里想要的字段
select @pagecount=COUNT(*) from fruit where name like ‘%‘[email protected]+‘%‘
--查询当前页应该显示的数据
select * from(select fruit.*,typename,rowId=ROW_NUMBER() over(order by fruit.fid) from fruit,fruittype
where fruit.id=fruittype.id and name like ‘%‘[email protected]+‘%‘) newfruit where rowId between ((@pageindex-1)*@pagesize+1) and (@pageindex*@pagesize)
go
--控制器
//实例化服务端
ServiceReference1.MyServiceClient client = new ServiceReference1.MyServiceClient();
/// <summary>
/// 显示、分页、模糊查询分页视图动作
/// </summary>
/// <param name="name"></param>
/// <param name="page"></param>
/// <param name="pagesize"></param>
/// <returns></returns>
public ActionResult Index(string name,int page=1,int pagesize = 2) //初始化页码值以及每页记录数
{
//判断参数是否为空,强制转换为空字符串
if (name == null)
{
name = "";
}
//总记录数
int pc;
//获取数据库当前页面需要查询集合
List<ServiceReference1.fruit> lst = client.show(name, page, pagesize, out pc).ToList();
//计算页码长度(方式1)
ViewBag.ye = Math.Ceiling((double)pc / (double)pagesize);
//返回到前台处理页码长度(方法2)
//ViewBag.pagecount = pc;
//ViewBag.pagesize = pagesize;
//@ViewBag.name是为了固定参数
ViewBag.name = name;
//返回视图模型
return View(lst);
}
--视图
<input type="text" name="name" value="@ViewBag.name" /><input type="submit" value="查询" />
<a href="/Home/Index?page=1&[email protected]">首页</a>
@for (int i = 1; i <= @ViewBag.ye; i++)
{
<a href="/Home/[email protected]&[email protected]">@i</a>
}
<a href="/Home/[email protected]&[email protected]">尾页</a>
以上是关于分页查询的主要内容,如果未能解决你的问题,请参考以下文章