关于c#常用表格控件dataGridView的分页显示,这里提供一份完整攻略,包含以下几个部分:
- 准备工作
- 数据源绑定
- 分页控件的使用
- 代码示例
- 参考资料
下面对每个部分进行详细说明。
一、准备工作:
在开始使用dataGridView进行分页显示之前,需要做好一些准备工作,包括:
1. 安装并引用数据库基础组件,例如MySql.Data.dll;
2. 创建数据库及表格,并预置数据记录;
3. 创建WinForm窗体,并添加dataGridView表格控件和分页控件;
4. 在设计器中指定dataGridView的数据源为数据表格。
二、数据源绑定:
在WinForm设计器中,选择dataGridView控件,在属性面板中指定数据源、数据表以及数据列,这样dataGridView就能读取并显示所需要的数据源了。
代码示例如下:
//创建MySqlConnection对象实例,并打开连接
MySqlConnection conn = new MySqlConnection("Server=yourServerName;Database=yourDatabaseName;Uid=yourUserName;Pwd=yourPassword;SslMode=none");
conn.Open();
//创建MySqlCommand对象实例,并指定SQL查询语句
string sql = "SELECT * FROM yourTableName";
MySqlCommand cmd = new MySqlCommand(sql, conn);
//创建DataAdapter对象实例,并调用Fill方法填充DataSet对象
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(ds);
//设置dataGridView的数据源及绑定关系
dataGridView1.DataSource = ds.Tables[0];
三、分页控件的使用:
一般情况下,需要使用分页控件对dataGridView进行分页显示。目前比较常用的分页控件有Pager和Paging。其中Pager是自定义分页控件,需要在WinForm设计器中添加Pager.cs文件,并调用Pager控件进行分页;Paging是第三方分页控件,可以通过NuGet安装并引用,直接调用Paging进行分页即可。
以Pager为例,代码示例如下:
//在WinForm设计器中添加Pager.cs自定义分页控件
Pager pager = new Pager();
pager.Dock = DockStyle.Bottom;
this.Controls.Add(pager);
//在代码中定义分页控件的相关属性
int recordCount = ds.Tables[0].Rows.Count;
int pageSize = 5;
pager.PageSize = pageSize;
pager.RecordCount = recordCount;
pager.CurrentPageChanged += new EventHandler(pager_CurrentPageChanged);
//在事件处理程序中实现分页查询功能
void pager_CurrentPageChanged(object sender, EventArgs e)
{
int pageIndex = pager.CurrentPageIndex;
int startRow = pageIndex * pageSize;
DataTable dt = ds.Tables[0].Clone();
for (int i = startRow; i < startRow + pageSize && i < recordCount; i++)
{
dt.ImportRow(ds.Tables[0].Rows[i]);
}
dataGridView1.DataSource = dt;
}
四、代码示例:
根据以上步骤,可以实现一个简单的dataGridView分页示例,代码如下:
//创建MySqlConnection对象实例,并打开连接
MySqlConnection conn = new MySqlConnection("Server=yourServerName;Database=yourDatabaseName;Uid=yourUserName;Pwd=yourPassword;SslMode=none");
conn.Open();
//创建MySqlCommand对象实例,并指定SQL查询语句
string sql = "SELECT * FROM yourTableName";
MySqlCommand cmd = new MySqlCommand(sql, conn);
//创建DataAdapter对象实例,并调用Fill方法填充DataSet对象
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(ds);
//设置dataGridView的数据源及绑定关系
dataGridView1.DataSource = ds.Tables[0];
//在WinForm设计器中添加Pager.cs自定义分页控件
Pager pager = new Pager();
pager.Dock = DockStyle.Bottom;
this.Controls.Add(pager);
//在代码中定义分页控件的相关属性
int recordCount = ds.Tables[0].Rows.Count;
int pageSize = 5;
pager.PageSize = pageSize;
pager.RecordCount = recordCount;
pager.CurrentPageChanged += new EventHandler(pager_CurrentPageChanged);
//在事件处理程序中实现分页查询功能
void pager_CurrentPageChanged(object sender, EventArgs e)
{
int pageIndex = pager.CurrentPageIndex;
int startRow = pageIndex * pageSize;
DataTable dt = ds.Tables[0].Clone();
for (int i = startRow; i < startRow + pageSize && i < recordCount; i++)
{
dt.ImportRow(ds.Tables[0].Rows[i]);
}
dataGridView1.DataSource = dt;
}
五、参考资料:
- C#中DataGridView也支持分页显示了!
- 常用控件:dataGridView 分页
- 分页控件 Paging
- C#自动生成分页控件,DataGridView分页控件
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#常用表格控件dataGridView的分页显示 - Python技术站