Você pode usar o DataGridview para obter mais informações.
如果要考虑效率,还是结合分页的"存储过程"比较好,只是变通了一下。
1 #region 数据处理
2 /// <resumo>
3 /// 得到期初数据
4 /// </summary>
5 getFillDateset privado vazio ()
6 {
7 tentar
8 {
9 //每页显示数
10 pageSize = 10;
11 //得到最大记录数
12 maxRec = dtSource.Rows.Count;
13 //共有多少页
14 pageCount = (maxRec/pageSize);
15 //取余数
16 se ((maxRec% pageSize) > 0)
17 {
18 contagem de páginas++;
19}
20 //默认第一页
21 página atual = 1;
22 RecNo = 0;
23 LoadPage();
24}
25 captura
26 {
27}
28}
29
30
31 /// <resumo>
32 /// 判断是否数据已经加载
33 /// </summary>
34 /// <retorna></retorna>
35 bool privado CheckFillButton()
36 {
37 if (pageSize == 0) retornar falso;
38 senão retorna verdadeiro;
39}
40
41 /// <resumo>
42 /// DataTable Definido
43 /// </summary>
44 privado vazio LoadPage()
45 {
46 int startRec;
47 int endRec;
48 DataTabledtTemp;
49
50
51 dtTemp = dtSource.Clone();
52 if (Página Atual == Contagem de páginas) endRec = maxRec;
53 else endRec = pageSize * currentPage;
54 startRec = recNo;
55 para (int i = startRec; i < endRec; i++)
56 {
57 dtTemp.ImportRow(dtSource.Rows[i]);
58 recNo++;
59}
60 this.dataGridView1.DataSource = dtTemp;
61}
62
63 /// <resumo>
64 /// 分页事件(取各个按键的Tag值)
65 /// </summary>
66 /// <param name="sender"></param>
67 /// <param name="e"></param>
68 página de alteração nula privada (remetente do objeto, EventArgs e)
69 {
70 se (!CheckFillButton()) retornar;
71 int myint = Convert.ToInt16((string)(remetente como botão).Tag);
72 interruptor (myint)
73 {
74 caso 1:
75 se (página atual == 1)
76 {
77 MessageBox.Show("A primeira página agora!");
78 retorno;
79
80}
81 páginaatual = 1;
82 RecNo = 0;
83 CarregarPágina();
84 pausa;
85 caso 2:
86 página atual++;
87 if (Página Atual > Contagem de páginas)
88 {
89 páginaatual = contagem de páginas;
90 se (recNo == maxRec)
91 {
92 MessageBox.Show("A última página agora!");
93 retorno;
94}
95 mais
96 recNo = pageSize * (Página Atual + 1);
97}
98 CarregarPágina();
99 pausa;
100 caso 3:
101 if (página atual == contagem de páginas)
102 recNo = pageSize * (Página Atual - 2);
103 página atual--;
104 se (página atual <1)
105 {
106 MessageBox.Show("A primeira página agora!");
107 página atual = 1;
108 retorno;
109}
110 mais
111 recNo = pageSize * (Página Atual - 1);
112
113 CarregarPágina();
114 pausa;
115
116 caso 4:
117 if (!CheckFillButton()) retornar;
118 se (recNo == maxRec)
119 {
120 MessageBox.Show("A última página agora!");
121 retorno;
122}
123 página atual = contagem de páginas;
124 recNo = pageSize * (Página Atual - 1);
125 CarregarPágina();
126 pausa;
127}
128
129}
130
131 #regiãofinal
http://www.cnblogs.com/azhai/archive/2006/09/18/507624.html