DataGridview dan DataGridView.
如果要虑效率,还是结合分页的"存储过程"比较好,只是变通了一下。
1 #region 数据处理
2 /// <ringkasan>
3 /// 得到期初数据
4 /// </ringkasan>
5 kekosongan pribadi getFillDateset()
6 {
7 mencoba
8 {
9 //每页显示数
10 Ukuran halaman = 10;
11 //得到最大记录数
12 maxRec = dtSource.Rows.Count;
13 //共有多少页
14 pageCount = (maxRec / ukuran halaman);
15 //取余数
16 jika ((maxRec % Ukuran halaman) > 0)
17 {
18 jumlah halaman++;
19 }
20 //默认第一页
21 Halaman saat ini = 1;
22 catatan ulang = 0;
23 Halaman Muat();
24 }
25 tangkapan
26 {
27 }
28 }
29
30
31 /// <ringkasan>
32 /// 判断是否数据已经加载
33 /// </ringkasan>
34 /// <pengembalian></pengembalian>
35 kotak pribadi CheckFillButton()
36 {
37 jika (Ukuran halaman == 0) menghasilkan false;
38 lainnya kembali benar;
39 }
40
41 /// <ringkasan>
42 /// 取DataTable的数据
43 /// </ringkasan>
44 LoadPage kekosongan pribadi()
45 {
46 int startRec;
47 int endRec;
48 Tabel Data dtTemp;
49
50
51 dtTemp = dtSource.Clone();
52 if (halaman saat ini == jumlah halaman) endRec = maxRec;
53 else endRec = pageSize * currentPage;
54 startRec = recNo;
55 untuk (int i = startRec; i < endRec; i++)
56 {
57 dtTemp.ImportRow(dtSource.Rows[i]);
58 catatan++;
59 }
60 ini.dataGridView1.DataSource = dtTemp;
61 }
62
63 /// <ringkasan>
64 /// 分页事件(取各个按键的Tag值)
65 /// </ringkasan>
66 /// <param nama="pengirim"></param>
67 /// <param nama="e"></param>
68 halaman perubahan kekosongan pribadi (pengirim objek, EventArgs e)
69 {
70 jika (!CheckFillButton()) kembali;
71 int myint = Convert.ToInt16((string)(pengirim sebagai Tombol).Tag);
72 saklar (saya)
73 {
74 kasus 1:
75 jika (Halaman saat ini == 1)
76 {
77 MessageBox.Show("Halaman pertama sekarang!");
78 kembali;
79
80 }
81 Halaman saat ini = 1;
82 RekNo = 0;
83 Halaman Muat();
84 istirahat;
85 kasus 2:
86 Halaman saat ini++;
87 jika (Halaman saat ini > Jumlah halaman)
88 {
89 Halaman saat ini = jumlah halaman;
90 jika (recNo == maxRec)
91 {
92 MessageBox.Show("Halaman terakhir sekarang!");
93 kembali;
94 }
95 lainnya
96 recNo = ukuran halaman * (halaman saat ini + 1);
97 }
98 Halaman Muat();
99 istirahat;
100 kasus 3:
101 jika (Halaman saat ini == Jumlah halaman)
102 recNo = ukuran halaman * (halaman saat ini - 2);
103 Halaman saat ini--;
104 jika (Halaman saat ini < 1)
105 {
106 MessageBox.Show("Halaman pertama sekarang!");
107 Halaman saat ini = 1;
108 kembali;
109 }
110 lainnya
111 recNo = ukuran halaman * (halaman saat ini - 1);
112
113 Halaman Muat();
114 istirahat;
115
116 kasus 4:
117 jika (!CheckFillButton()) kembali;
118 jika (recNo == maxRec)
119 {
120 MessageBox.Show("Halaman terakhir sekarang!");
121 kembali;
122 }
123 Halaman saat ini = jumlah halaman;
124 recNo = ukuran halaman * (halaman saat ini - 1);
125 Halaman Muat();
126 istirahat;
127 }
128
129 }
130
131 #wilayah akhir
http://www.cnblogs.com/azhai/archive/2006/09/18/507624.html