C#中Entity Framework实现DataGridView的分页
2017-12-31 13:09
609 查看
在网上看了很多关于datagridview的分页,但大多是用ADO.NET框架的。最近在学习EntityFramework框架,再借鉴之前看到的分页刚好用来练手。
ADO框架分页的原创作者一时间想不起来,但您如果看到,请与我联系!
嗯,菜鸟,所以界面不会好看到哪。
( ̄▽ ̄”)
========================================
首先设置全局变量
getCount()是放在UserDAO.cs里的方法,用于计算总记录条数
winform_load里计算总页数
bindata()显示数据库里Users表的数据
首页
末页
上一页
下一页
首页
末页
到头
到尾
如果掌握了上面的语句,那么跳转到指定页数也是可以自己写的吧 ╮( ̄▽ ̄)╭
当然这是很简略的分页功能,有待完善,请多多指教。
以上。
ADO框架分页的原创作者一时间想不起来,但您如果看到,请与我联系!
嗯,菜鸟,所以界面不会好看到哪。
( ̄▽ ̄”)
========================================
首先设置全局变量
int Inum = 1; //行号,规定其索引初始值为1 int pagesize = 5;//由于数据不多,所以只设置每页5条记录 int allCount = UserDAO.getCount();//总记录条数 int pagecount = 0;//总页数 static EFEntities6 db = new EFEntities6();
getCount()是放在UserDAO.cs里的方法,用于计算总记录条数
static EFEntities6 db = new EFEntities6(); public static int getCount() { var query = from u in db.Users select u; return query.ToList().Count(); }
winform_load里计算总页数
private void Manage_Load(object sender, EventArgs e) { pagecount = allCount % pagesize; if (pagecount == 0) { pagecount = allCount / pagesize; } else { pagecount = allCount / pagesize + 1;//如果不整除就加1 } count.Text = "共" + pagecount.ToString() + "页"; index.Text = "当前第" + Inum.ToString() + "页"; bindData(); }
bindata()显示数据库里Users表的数据
//用户信息列表更新 private void bindData() { Inum = 1; var query = (from u in db.Users select new { u.ID, 姓名 = u.UserName, 手机 = u.phone, 邮箱 = u.email, 身份证 = u.identification } ) .Take(5); UserData.DataSource = query.ToList();//datagridview显示数据 }
首页
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Inum = 1; var query = (from u in db.Users select new { u.ID, 姓名 = u.UserName, 手机 = u.phone, 邮箱 = u.email, 身份证 = u.identification }) .Take(5);//获取Users表内前5条记录 UserData.DataSource = query.ToList(); index.Text = "当前第" + Inum.ToString() + "页"; }
末页
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Inum = pagecount; int num = UserDAO.getCount()-5; var query = (from u in db.Users orderby u.ID select new { u.ID, 姓名 = u.UserName, 手机 = u.phone, 邮箱 = u.email, 身份证 = u.identification }) .Skip(num).Take(5); UserData.DataSource = query.ToList(); index.Text = "当前第" + Inum.ToString() + "页"; }
上一页
private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Inum--; if (Inum > 0) //如果当前不是首记录 { int num = Inum * 5 - 5;//上上页的最后一条数据 var query = (from u in db.Users orderby u.ID select new { u.ID, 姓名 = u.UserName, 手机 = u.phone, 邮箱 = u.email, 身份证 = u.identification }) .Skip(num).Take(5); UserData.DataSource = query.ToList(); //显示上一页记录 index.Text = "当前第" + Inum.ToString() + "页"; } else { MessageBox.Show("现已是第一页记录"); Inum = 1; index.Text = "当前第" + Inum.ToString() + "页"; return; } }
下一页
private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) a966 { Inum++; if (Inum <= pagecount) //如果没有超出总页数 { int num = (Inum - 1) * 5;//没跳到下一页之前的最后一条数据 var query = (from u in db.Users orderby u.ID select new { u.ID, 姓名 = u.UserName, 手机 = u.phone, 邮箱 = u.email, 身份证 = u.identification }) .Skip(num).Take(5); UserData.DataSource = query.ToList(); index.Text = "当前第" + Inum.ToString() + "页"; } else { MessageBox.Show("现已是最后一页记录"); Inum = pagecount; index.Text = "当前第" + Inum.ToString() + "页"; return; } }
首页
末页
到头
到尾
如果掌握了上面的语句,那么跳转到指定页数也是可以自己写的吧 ╮( ̄▽ ̄)╭
当然这是很简略的分页功能,有待完善,请多多指教。
以上。
相关文章推荐
- C#实现DataGridView分页功能
- 【原创】C#——DataGridView分页功能的实现
- 【转】C#——DataGridView分页功能的实现
- C#实现DataGridView分页功能
- C# Winform DataGridView 公共分页实现
- c#在winform中用DataGridView实现分页效果
- C# Winform DataGridView分页功能的实现
- C#Winform:DataGridView 简单分页实现
- C#实现Datagridview分页,从Sql中读取的数据
- C# Winform DataGridView 公共分页实现
- C# Winform DataGridView分页功能的实现
- C# Winform DataGridView分页功能的实现
- C# DataGridView分页功能(SQL分页存储过程实现)
- C#分页最好的实现方法C#-DataGridView分页功能的实现(存储过程实现)
- C# Winform DataGridView 公共分页实现
- C# 实现DataGridView分页功能
- C# Winform DataGridView 公共分页实现
- 『转』C#实现DataGridView分页功能
- c#在winform中用DataGridView实现分页效果
- C# Winform DataGridView 公共分页实现