c#dataGridView分页显示


在C#编程中,`dataGridView`控件是一个非常常见的组件,用于展示表格数据。当我们处理大量数据时,分页显示就显得尤为重要,因为一次性加载所有数据可能会导致性能问题。本篇将详细介绍如何利用C#和存储过程实现`dataGridView`的分页功能,并探讨自定义控件在分页中的应用。 我们要理解`dataGridView`的基本用法。在C# WinForms应用中,`dataGridView`通常通过数据绑定来展示数据源中的内容。数据源可以是数据库查询结果、数组或其他可枚举对象。在处理大数据集时,我们需要避免一次性加载所有数据,而是分批加载,这就是分页的目的。 分页实现的核心在于从数据库中按页获取数据。这里我们采用存储过程来完成这个任务。存储过程是一种预编译的SQL代码集合,可以在数据库服务器端执行,提高了性能并减少了网络传输的数据量。创建一个带参数的存储过程,例如`GetPagedData(@PageIndex, @PageSize)`,接收当前页索引和每页大小,返回对应页的数据。 在C#代码中,连接到数据库并调用存储过程,将返回的结果集绑定到`dataGridView`。使用ADO.NET的`SqlCommand`和`SqlDataAdapter`类,配合`DataTable`或`DataSet`作为中间数据容器: ```csharp using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand("GetPagedData", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@PageIndex", pageIndex); command.Parameters.AddWithValue("@PageSize", pageSize); SqlDataAdapter adapter = new SqlDataAdapter(command); DataTable dataTable = new DataTable(); adapter.Fill(dataTable); dataGridView.DataSource = dataTable; } ``` 至于分页控件,我们可以自定义一个用户控件(UserControl)来实现“首页”、“上一页”、“下一页”等功能。这个控件通常包含按钮和显示当前页数、总页数的文本框。当用户点击这些按钮时,触发事件,更新`dataGridView`的页码并重新加载数据。 自定义分页控件的实现可能如下: ```csharp public partial class CustomPager : UserControl { public event EventHandler PageChanged; protected void OnPageChanged(object sender, EventArgs e) { if (PageChanged != null) PageChanged(this, e); } // 按钮点击事件处理 private void btnFirst_Click(object sender, EventArgs e) { pageIndex = 1; OnPageChanged(sender, e); } private void btnPrev_Click(object sender, EventArgs e) { pageIndex--; OnPageChanged(sender, e); } // ... 其他按钮事件处理 } ``` 在主窗体中,将`dataGridView`和`CustomPager`控件关联起来,订阅`PageChanged`事件,当页码改变时,调用上述的数据库查询代码更新数据: ```csharp private void customPager1_PageChanged(object sender, EventArgs e) { LoadPagedData(customPager1.PageIndex, pageSize); } ``` `allenPageTest`和`Allen.Page`可能是项目中用于测试分页功能的类库或示例代码,它们可能包含了存储过程的实现、自定义分页控件的代码以及如何在实际应用中集成这些元素的示例。 通过结合C#、存储过程和自定义控件,我们可以实现高效且用户体验良好的`dataGridView`分页显示。这不仅优化了应用程序性能,也提升了用户交互体验。在实际项目中,还可以根据需求进一步定制分页样式和功能,如跳转到指定页、每页显示条目数设置等。

















































































































- 1


- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2025年职业卫生试题与完整答案.docx
- 2025年政工职称考试题库附答案.docx
- 2025年职业健康基础知识考试(100分)与答案.docx
- 2025年中小学教师晋级职称考试试题(附含答案).docx
- 2025年中国移动招聘考试笔试试题综合能力测试卷和答案.docx
- 2025年职业健康基础知识考试(100分)及答案.docx
- 2025年中国移动招聘考试笔试试题综合能力测试卷与答案.docx
- 2025年中国移动在线测评笔试题库(附答案).docx
- 2025年中国移动在线测评笔试题库(含答案).docx
- 2025年中国石油化工集团中石化招聘笔试试题与答案.docx
- 2025年中小学教师高级职称专业水平能力题库和答案.docx
- 2025年中小学防溺水安全知识竞赛题库与答案.docx
- 2025年中国石油化工集团中石化招聘笔试试题及答案.docx
- 2025年中小学防溺水安全知识竞赛题库及答案.docx
- 2025年中小学教师高级职称专业水平能力题库及答案.docx
- A176基于springboot+vue的扶贫众筹网(完整前后端代码+sql脚本+开发文档+全套软件)


