日期:2014-05-20  浏览次数:20628 次

分享我的百万级数据查询分页

有什么不好的地方欢迎指点,主要运用sql2005的ROW_NUMBER()
分页其实很简单,只要把页参数传递到以下SQL语句中即可。
where number between cast('" & PageSize & "' as int) *(cast('" & CurrentPage & "' as int)-1)+1 and cast('" & PageSize & "' as int)*cast('" & CurrentPage & "' as int)")
如果不懂vb.net可以到这个网页把代码转换为c# http://www.developerfusion.com/tools/convert/vb-to-csharp/
前台用 gridview repeater datalist 都是一样的。


前台
HTML code


            <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                
                     <ContentTemplate>
            <asp:repeater id="Repeater1" runat="server">
                <HeaderTemplate>
                    <table id="tb01" width="260%" border="0" cellspacing="1" cellpadding="2" bgcolor="#dddddd">
                        <tbody>
                            <tr style="background-color:#ffffff">
                                <td class="trTitle"  style="width:80px;background-image:url(images/trbg02.gif);background-color:#ffffff;height:23px;" >編號</td>
                                <td class="trTitle"  style="width:80px;background-image:url(images/trbg02.gif);background-color:#ffffff;height:23px;">姓名</td>
                                <td class="trTitle"   style="width:150px;background-image:url(images/trbg02.gif);background-color:#ffffff;height:23px;">名稱</td>
                                
                            </tr>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr style="background-color:#ffffff">
                        <td height="20px"  align="left">
                            <a style="cursor:hand" href="<%= strLinkManitCrsCat %>&recid=<%# Container.DataItem("rec_id") %>&mode=1"  title="編輯/刪除"><strong><asp:label  Font-Names="Tahoma" id="lblClassNum" Width="80px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"emp_id") %>'>
                            </asp:label></strong></a>
                        </td>
                        <td align="left">
                            <asp:label id="Label4" Width="80px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"emp_chn_nam") %>'>
                            </asp:label>
                        </td>
                        <td align="left">
                            <asp:label id="lblCrsCatDesc" Width="150px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"crs_num") %>'>
                            </asp:label>
                        </td>
                        
                    </tr>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <tr bgcolor="#f9f9f9">
                        <td height="20px"  align="left">
                            <a style="cursor:hand" href="<%= strLinkManitCrsCat %>&recid=<%# Container.DataItem("rec_id") %>&mode=1" title="編輯/刪除"><strong><asp:label Font-Names="Tahoma" id="lblClassNum" Width="80px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"emp_id") %>'>
                            </asp:label></strong></a>
                        </td>
                        <td align="left">
                            <asp:label id="Label4" Width="80px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"emp_chn_nam") %>'>
                            </asp:label>
                        </td>
                    <td align="left">
                            <asp:label id="lblCrsCatDesc" Width="150px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"crs_num") %>'>
                            </asp:label>
                        </td>
                        <td align="left">
                            <asp:label id="Label8" Width="60px" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"cls_num") %>'>
                            </asp:label>
                        </td>
                        
                        
                        
                    </tr>
                </AlternatingItemTemplate>
                <FooterTemplate>
                    <tr bgcolor="#f2f2f2">
                        <td height="8" colspan="22" align="center"></td>
                    </tr>
                    </tbody></table>
                </FooterTemplate>
            </asp:repeater>
            <div style="PADDING-TOP:10px" align="center">
                


            &nbsp; 共<asp:label id="LPageCount" ForeColor="#ff0000" Runat="server"></asp:label>頁
            <asp:label id="LTotalCount" ForeColor="#ff0000" Runat="server"></asp:label>條記錄
                    <asp:linkbutton id="Fistpage" Runat="server" CommandName="0">首頁</asp:linkbutton>
                    <asp:linkbutton id="Prevpage" Runat="server" CommandName="prev">上一頁</asp:linkbutton>
                    <asp:linkbutton id="Nextpage" Runat="server" CommandName="next">下一頁</asp:linkbutton>
                    <asp:linkbutton id="Lastpage" Runat="server" CommandName="last">尾頁</asp:linkbutton>當前第
                    <asp:label id="LCurrentPage" ForeColor="#ff0000" Runat="server"></asp:label>頁
           &nbsp; 轉到第
           <asp:textbox id="gotoPage" Width="30px" Runat="server" AutoPostBack="True" MaxLength="5" ></asp:textbox>頁
           <asp:Label style=" POSITION: absolute" id="msgbox" runat="server" ForeColor="Red" BorderColor="Red"></asp:Label>
           </div>
           
           </ContentTemplate>                
</asp:UpdatePanel>
            <input type="hidden" id="sortfield" runat="server" name="sortfield"/> <input type="hidden" id="sortstring" runat="server" name="sortstring"/>&nbsp;
        </form>
    </body>
</html>