winform里dataGridView分页,默认dataGridView是不分页的和webform里不一样,webform中GridView自带自带了分页。

现在c/s的程序很多时候也需要webform的分页样式,所以就写了下面的分页,使用了access数据库。

原理就是读取数据存入datatable中,然后根据不同的页来显示当页数据。这样有个缺点就是数据量太大时会影响显示速度。sql server数据库时可以借助数据库来实现只读取当页数据来显示,效率会高一些。

所用环境:vs.net2010   access2003

form中控件如下图:

控件分别是:dataGridView1,button1,button3,button2,button4,textBox1,button5,label2,label3,label4,label5,label6,label7

分页效果如下图:

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace test
{
public partial class Form3 : Form
{
public int pageSize = ; //每页记录数
public int recordCount = ; //总记录数
public int pageCount = ; //总页数
public int currentPage = ; //当前页 public DataTable dtSource = new DataTable(); public Form3()
{
InitializeComponent();
} private void Form3_Load(object sender, EventArgs e)
{
//数据库操作获得DataTable
string sql = "select ID,title from info"; DB db = new DB(); dtSource = db.GetDt(sql);
// recordCount = dtSource.Rows.Count; pageCount = (recordCount / pageSize); if ((recordCount % pageSize) > )
{
pageCount++;
} //默认第一页
currentPage = ; LoadPage();
} private void LoadPage()
{
//
if (currentPage < ) currentPage = ;
if (currentPage > pageCount) currentPage = pageCount;
// int beginRecord;
int endRecord;
DataTable dtTemp; dtTemp = dtSource.Clone(); beginRecord = pageSize * (currentPage - );
if (currentPage == ) beginRecord = ;
endRecord = pageSize * currentPage;
if (currentPage == pageCount) endRecord = recordCount; for (int i = beginRecord; i < endRecord; i++)
{
dtTemp.ImportRow(dtSource.Rows[i]);
} dataGridView1.DataSource = dtTemp; label3.Text = currentPage.ToString();
label5.Text = pageCount.ToString();
label7.Text = recordCount.ToString();
textBox1.Text = currentPage.ToString();
} private void button1_Click(object sender, EventArgs e)
{
currentPage = ;
LoadPage();
}
private void button2_Click(object sender, EventArgs e)
{
currentPage++;
LoadPage();
}
private void button3_Click(object sender, EventArgs e)
{
currentPage--;
LoadPage();
}
private void button4_Click(object sender, EventArgs e)
{
currentPage = pageCount;
LoadPage();
} private void button5_Click(object sender, EventArgs e)
{
int pageN = Convert.ToInt32(textBox1.Text);
currentPage = pageN;
LoadPage();
} }
}

数据库access2003

winform里dataGridView分页代码,access数据库的更多相关文章

  1. (转)将access数据库迁移到SQLserver的两种方法

    在实际项目使用中遇到的问题,将原文整理后以备后用. 原文地址(具体链接几次未知):http://www.jb51.net/article/41956.htm 方法1 使用ACCESS2007自带的数据 ...

  2. 将ACCESS数据库迁移到SQLSERVER数据库

    原文:将ACCESS数据库迁移到SQLSERVER数据库 将ACCESS数据库迁移到SQLSERVER数据库 ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 ...

  3. C#读写Access数据库、表格datagridview窗体显示代码实例

    C#读写Access数据库.表格datagridview窗体显示代码实例 最近项目中用到C#对于Access数据库表读写.mdb操作,学习了下相关的东西,这里先整理C#对于Access数据库的操作,对 ...

  4. WinForm DataGridView分页功能

    WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件  .CS: 1 using System; ...

  5. winform中DataGridView实现分页功能

    WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载)   转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...

  6. winform连接ACCESS数据库

    1.先建立一个名叫text.mdb的access数据库 2.他它复制到access中文件下. 3.在App_Code文件夹下建好封装语句,查询方法,连接语句,其中studentDA中的代码为: pri ...

  7. 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现

    关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...

  8. access数据库及其分页的方法

    首先access数据库的话,感觉针对比较小型的网站比较适合.携带方便,不需要按照特定的sql环境. 当然如果使用access数据库的话 1.首先你先要下载办公五合一(access也是其中之一) 2.w ...

  9. thinkphp从数据库里的html代码显示页面不解析

    首先,这个问题不应该出现在这里,因为以前在用ThinkPHP3.1.2的时候,利用富文本编辑器保存文本后,直接从数据库里面取出的数据都能正常显示,改用ThinkPHP3.2.3之后,thinkphp从 ...

随机推荐

  1. 运行Python脚本的方法

    1.安装完Python后,添加环境变量---在系统变量中找到Path ,点击编辑把你的python安装目录放到里面,注意环境变量之间用";"隔开.打开CMD,在CMD命令行中,输入 ...

  2. 1057 N的阶乘(大数运算)

    题目链接:51nod 1057 N的阶乘 #include<cstdio> using namespace std; typedef long long ll; ; const int m ...

  3. VS2010 添加服务引用以后点不出引用服务的命名空间

    声明:本次我遇到的仅是这类情况中的其中一个个例,不要拘泥于些噢! 问题描述: 1.我建了一个新项目,不引用服务前是好的,可以打点点出任何已有有命名空间,但是引用服务以后就是点不出服务的命名空间. 2. ...

  4. 10月9日Android学习笔记:活动与服务之间的通信

    最近在照着<第一行代码>这本书来学安卓,顺便记下笔记.主要的内容是Android中服务的第二种启动方式,通过活动绑定服务来启动服务,实现活动与服务之间的通信. 一. 首先创建一个服务类 p ...

  5. PHPMySQL 中 pdo文件的增删改查

    <?php //PDO类的增删改查 try { $pdo = new PDO("mysql:host=localhost;dbname=ooo","root&quo ...

  6. 使用Settings.settings存储用户的个性化配置

    1.在vs中设计要存储的字段,如:zbl,注意范围选择用户 读取: var aa = Properties.Settings.Default.zbl; 写入: Properties.Settings. ...

  7. iOS开发网络篇—搭建本地服务器

    iOS开发网络篇—搭建本地服务器 一.简单说明 说明:提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提示:提前准备好的软件 apache- ...

  8. node+mongodb+ionic+cordova

    node + mongodb1,环境 windows 1,install nodejs 2,install npm | cd npmjs node cli.js install -gf1.1 2.no ...

  9. UITableView编辑

      UITableView 编辑步骤如下: 1.让TableView处于编辑状态 2.协议设定  2.1.确定Cell是否处于编辑状态  2.2.设定Cell的编辑样式(删除.添加)  2.3.编辑状 ...

  10. CodeForces 686B-Little Robber Girl's Zoo

    题目: 有n头数量的动物,开始它们站在一排,它们之间有高度差,所以需要将它们进行交换使得最终形成一个不减的序列,求它们交换的区间.交换的规则:一段区间[l, r]将l与l+1.l+2与l+3..... ...