1、编写分页存储过程

USE [Contacts]
GO

create procedure [dbo].[GetPageData]
(@startIndex int,
@endIndex int
)
as
begin
with temptbl as (
SELECT ROW_NUMBER() OVER (ORDER BY contact.id )AS Row, contact.id,name,phone,email,groupname from contact inner join contactgroup on contact.groupid=contactgroup.id )
SELECT * FROM temptbl where Row between @startIndex and @endIndex
end
GO

2、设计窗体

3、编写代码

public partial class FormPaging : Form
{

//每页显示的记录数
int pageSize = 3;

//当前页码
int page=1;

public FormPaging()
{
InitializeComponent();
}

//获取总的记录数
int GetRecordCount()
{
string sql = "select count(*) from contact";
return Convert.ToInt32(SqlDbHelper.ExecuteScalar(sql));
}
void Fill(int page)
{
string sql = "GetPageData";//分页存储过程名称
int startIndex = (page - 1) * pageSize + 1;
int endIndex = page * pageSize;
SqlParameter[] sp ={
new SqlParameter("@startIndex",startIndex),
new SqlParameter("@endIndex", endIndex)
};
DataTable dt = SqlDbHelper.ExecuteDataTable(sql, CommandType.StoredProcedure, sp);
dgvContactList.DataSource = dt;
}
private void FormPaging_Load(object sender, EventArgs e)
{
BindCombox();
Fill(page);
}

//用页数填充下拉框

private void BindCombox()
{
int total = GetRecordCount();

//计算总的页数
int totalPage = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
for (int i = 1; i <=totalPage; i++)
{
comboBox1.Items.Add(i);
}
}

//根据用户选择的当前页码,绑定DataGridView控件

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
page = Convert.ToInt32(comboBox1.Text);
Fill(page);
}
}

WinForm数据源分页技术的更多相关文章

  1. 分页技术之PageDataSource类

    之前给大家介绍了分页技术之Gridview控件,今天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现. 前台只需要拖出一个Repeater控件来绑定要显示 ...

  2. 改进Spring中的分页技术

    Spring中有一个PagedListHolder,能够实现分页. 但此类有几个缺点: 1. 使用此类的代码比較繁琐 2. 此类存放的数据源是全部的记录集,即对于记录数为1000条的数据,即使我们仅仅 ...

  3. tp中使用分页技术

    1 public function showList() { $m_ld = D ( 'guangxi_ld' ); $page = I ( 'get.p', 1 ); // 在配置中获取分页值 $p ...

  4. Servlet分页技术

    这是看韩顺平老师的servlet视频,自己动手写的,楼主看韩顺平老师的servlet是2006制作的,用的是sql server数据库,自己又用的是oracle数据库,所以怕有的同学遇到同样的问题,不 ...

  5. jsp-------------之分页技术(一)

    jsp分页技术之: 如下图:百度的喵 看上图中卡哇伊的小苗的爪子下面的数字,就是分页啦!那我们如何做出这样一个效果呢? 下面我们来逐一分解: jsp分页技术一 :  (算法) /* int pageS ...

  6. 分页技术之GridView控件

    GridView控件实现分页技术 第一步:设置GridView控件的属性,跟分页相关的属性设置如下: AllowPaging="true":允许分页, PageSize=" ...

  7. 关于Ajax无刷新分页技术的一些研究 c#

    关于Ajax无刷新分页技术的一些研究 c# 小弟新手,求大神有更好的解决方案,指教下~ 以前做项目,用过GridView的刷新分页,也用过EasyUI的封装好的分页技术,最近在老项目的基础上加新功能, ...

  8. Javaweb 第15天 web练习和分页技术

    第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...

  9. 浅谈Java分页技术

    话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount; ...

随机推荐

  1. MySQL 外键异常分析

    外键约束异常现象 如下测例中,没有违反引用约束的插入失败. create database `a-b`; use `a-b`; SET FOREIGN_KEY_CHECKS=0; create tab ...

  2. golang 远程传输文件

    概述 之前有一篇介绍如何使用 golang 通过SSH协议来执行远程命令:golang 执行远程命令 同样,通过SSH协议也可以使用 golang 来远程传输文件. 除了 SSH 的库,为了传输文件, ...

  3. [转]编译VC++程序warning C4819快速解决

    文章来自:http://www.cppblog.com/API/archive/2012/11/12/195056.aspx 编译VC++程序的时候出现如下提示警告: warning C4819: T ...

  4. WP8:Unity3D之间的值传递

    在前面的讨论中,我们介绍了如何在Unity3D for WP8中使用高于.Net 3.5的第三方库,传送门:http://www.cnblogs.com/zhxilin/p/3311240.html ...

  5. 让Sqlite脱离VC++ Runtime独立运行

    前段时间在开发OrayTalk(傲瑞通)的聊天记录模块时用到了Sqlite,这是我第一次接触和使用Sqlite,总体感觉还是非常不错的.这里把我使用Sqlite的经验跟大家分享一下. 一.关于Sqli ...

  6. C++ Primer学习笔记二

    vector<int> a(10,0); for(vector<int>::iterator itor=a.begin();itor!=a.end();itor++) *ito ...

  7. 微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug

    开篇介绍 前些天自己在整理 SSIS 2012 资料的时候发现了一个功能设计上的疑似Bug,在 Script Task 中是可以给只读列表中的变量赋值.我记得以前在 2008 的版本中为了弄明白这个配 ...

  8. BugTracker 功能说明(有图有真相)

    一.简单介绍 BugTracker是基于Asp.Net,C#, SqlServer的一个web端Bug管理系统.发布在IIS上.能够对不同项目,不同组织,不同人员的bug进行管理和更新设计优先级和用户 ...

  9. AVL树(三)之 Java的实现

    概要 前面分别介绍了AVL树"C语言版本"和"C++版本",本章介绍AVL树的Java实现版本,它的算法与C语言和C++版本一样.内容包括:1. AVL树的介绍 ...

  10. Leetcode 118 Pascal's Triangle 数论递推

    杨辉三角,即组合数 递推 class Solution { vector<vector<int>> v; public: Solution() { ; i < ; ++i ...