2023年6月21日发(作者:)
C#-数据库分页查询前⾔:这是我写的第⼀篇技术⽂章,⽬前正在学习C#,还属于基础加强阶段,希望可以通过撰写博客加深⾃⼰对于所学知识点的理解,并尽量详细的把⾃⼰的学习过程与⼤家分享,希望能够与⼤家⼀起分享交流学习⼼得。当我们从sql数据库中读取的数据量较多,并需要在页⾯中展⽰出来时,在⼀页上全部显⽰未免有点冗余,所以为了⽅便⽤户查看,可以实现分页浏览的功能,具体需求如下。需求分析从数据库读取数据显⽰在DataGridView中选择显⽰⾸页、尾页、上⼀页、下⼀页实现过程分析在sql数据库中创建表TblTeacher在vs中⾃定义SqlHelper类,将有关数据库的所有操作均封装进去,让⽤户在编程时只专注于构造sql语句或者存储过程;设计WinForm窗体,向其中添加MenuStrip和DataGridView控件;编写MenuStrip各项的点击事件。1.实现效果WinForm窗体每页显⽰3条数据效果图如下所⽰:First表⽰⾸页;Last表⽰尾页;Prev表⽰前⼀页;Next表⽰后⼀页;最后⼀栏为combox,可由⽤户选择每页显⽰的数据条数2.实现过程创建表创建表TblTeacher,表中包含tTId(编号)、tTName(姓名)、tTGender(性别)、tTAge(年龄)、tTSalary(薪资)、tTBirthday(⽣⽇)6个字段,其中tTId为主键。封装SqlHelper类应⽤程序配置⽂件中配置连接字符串在使⽤数据库时,连接字符串需多次使⽤到,将其写进配置⽂件中后,在程序中只需通过⼀句代码就可访问到。在中configuration节点下添加如下代码段:
(); (dt); } return dt; } }}复制代码控件点击事件菜单栏⼦项点击后的触发事件,通过Text属性判断当前要去第⼏页。//填充数据到datagridview private void fillToolStripMenuItem_Click(object sender, EventArgs e) { string sql = "select * from Teacher_Index"; DataTable dt = aTable(sql, null); urce = dt; urce = dt; } //当前显⽰的页码 int page_index; //判断选择的是⾸页、尾页、前⼀页、后⼀页 private void Page_Click(object sender, EventArgs e) { //根据combox的内容获取⼀页的⾏数 int page_size = 32(MS_page_); //获取总的数据⾏数 int rows = GetCount(); //获取能得到的最多的页数 int max_rowindex = rows % page_size == 0 ? rows / page_size : rows / page_size + 1; ToolStripMenuItem page = sender as ToolStripMenuItem; switch () { //⾸页 case "First": page_index = 1; break; //尾页 case "Last": page_index = max_rowindex; break; //前⼀页 case "Prev": if (page_index <= 1) //已经是⾸页 page_index = 1; else page_index--; break; //下⼀页 case "Next": if (page_index >= max_rowindex) //已经是尾页 page_index = max_rowindex; else page_index++; break; } //指定dataGridView1的数据源 urce = GetData(); } //获取指定⾏的数据 private DataTable GetData() { int page_size = 32(MS_page_); //获取指定列数的内容 string sql = "select * from Teacher_Index where row_index between @startindex and @endindex"; //给参数赋值 Dictionary
2023年6月21日发(作者:)
C#-数据库分页查询前⾔:这是我写的第⼀篇技术⽂章,⽬前正在学习C#,还属于基础加强阶段,希望可以通过撰写博客加深⾃⼰对于所学知识点的理解,并尽量详细的把⾃⼰的学习过程与⼤家分享,希望能够与⼤家⼀起分享交流学习⼼得。当我们从sql数据库中读取的数据量较多,并需要在页⾯中展⽰出来时,在⼀页上全部显⽰未免有点冗余,所以为了⽅便⽤户查看,可以实现分页浏览的功能,具体需求如下。需求分析从数据库读取数据显⽰在DataGridView中选择显⽰⾸页、尾页、上⼀页、下⼀页实现过程分析在sql数据库中创建表TblTeacher在vs中⾃定义SqlHelper类,将有关数据库的所有操作均封装进去,让⽤户在编程时只专注于构造sql语句或者存储过程;设计WinForm窗体,向其中添加MenuStrip和DataGridView控件;编写MenuStrip各项的点击事件。1.实现效果WinForm窗体每页显⽰3条数据效果图如下所⽰:First表⽰⾸页;Last表⽰尾页;Prev表⽰前⼀页;Next表⽰后⼀页;最后⼀栏为combox,可由⽤户选择每页显⽰的数据条数2.实现过程创建表创建表TblTeacher,表中包含tTId(编号)、tTName(姓名)、tTGender(性别)、tTAge(年龄)、tTSalary(薪资)、tTBirthday(⽣⽇)6个字段,其中tTId为主键。封装SqlHelper类应⽤程序配置⽂件中配置连接字符串在使⽤数据库时,连接字符串需多次使⽤到,将其写进配置⽂件中后,在程序中只需通过⼀句代码就可访问到。在中configuration节点下添加如下代码段:
(); (dt); } return dt; } }}复制代码控件点击事件菜单栏⼦项点击后的触发事件,通过Text属性判断当前要去第⼏页。//填充数据到datagridview private void fillToolStripMenuItem_Click(object sender, EventArgs e) { string sql = "select * from Teacher_Index"; DataTable dt = aTable(sql, null); urce = dt; urce = dt; } //当前显⽰的页码 int page_index; //判断选择的是⾸页、尾页、前⼀页、后⼀页 private void Page_Click(object sender, EventArgs e) { //根据combox的内容获取⼀页的⾏数 int page_size = 32(MS_page_); //获取总的数据⾏数 int rows = GetCount(); //获取能得到的最多的页数 int max_rowindex = rows % page_size == 0 ? rows / page_size : rows / page_size + 1; ToolStripMenuItem page = sender as ToolStripMenuItem; switch () { //⾸页 case "First": page_index = 1; break; //尾页 case "Last": page_index = max_rowindex; break; //前⼀页 case "Prev": if (page_index <= 1) //已经是⾸页 page_index = 1; else page_index--; break; //下⼀页 case "Next": if (page_index >= max_rowindex) //已经是尾页 page_index = max_rowindex; else page_index++; break; } //指定dataGridView1的数据源 urce = GetData(); } //获取指定⾏的数据 private DataTable GetData() { int page_size = 32(MS_page_); //获取指定列数的内容 string sql = "select * from Teacher_Index where row_index between @startindex and @endindex"; //给参数赋值 Dictionary
发布评论