您的位置:首页 > 其它

利用存储过程进行高效分页的例子

2005-04-26 10:32 621 查看
高效分页的例子:

后台代码:

        private void Page_Load(object sender, System.EventArgs e)

        private void BindGrid()

        private void lbnFormerPage_Click(object sender, System.EventArgs e)

        private void lbnNextPage_Click(object sender, System.EventArgs e)

        private void ddlNum_SelectedIndexChanged(object sender, System.EventArgs e)

    

数据操作层的代码:

        public static DataSet GetNewsRecord(string SearchContent,string Page,string Orderby)

        protected static DataSet ExecuteStoreDataset(string StoreName,SqlParameter[] par)

CREATE PROCEDURE [dbo].[card_高效分页] 

(

    @PageSize int,                                     --每页记录

    @PageIndex int,                                   --当前页数,1开始

    @Condition varchar(8000),                   --查询条件,包括and,where,必须有一个条件如where 2>1

    @TheTable varchar(8000),                    --表名

    @SelectField varchar(8000),                --要选择的字段

    @OrderBy varchar (8000),                    --OrderBy字句,包括order

    @TableID varchar (8000)                        --table主键

)

AS

begin

declare @Sql varchar(8000)

--返回记录

set @Sql='select top ' + cast(@PageSize as varchar(10)) + ' ' + @SelectField + ' from ' + @TheTable + ' ' + @Condition + ' and '

    + @TableID +' not in (select top ' + cast((@PageSize*(@PageIndex-1)) as varchar(10))+' ' +@TableID+'  from ' + @TheTable + ' ' + @Condition

    + ' ' + @OrderBy +') ' + @OrderBy

exec(@sql)

--返回总数

set @Sql='select count(' + @TableID + ') from ' + @TheTable +' ' + @Condition

exec(@sql)

end

GO

前台代码(部分):

                                            <td align="right">

                                                <TABLE height="23" cellSpacing="0" cellPadding="0" border="0">

                                                    <tr>

                                                        <td width="3"><IMG src="../images/SelectBg.gif"></td>

                                                        <td vAlign="middle" background="../images/SelectBorder.gif" bgColor="white"><span style="LEFT: 3px; OVERFLOW: hidden; POSITION: relative; HEIGHT: 17px"><asp:dropdownlist id="ddlNum" Runat="server" AutoPostBack="True" CssClass="Border"></asp:dropdownlist></span></td>

                                                        <td width="3"><IMG style="FILTER: fliph" src="../images/SelectBg.gif"></td>

                                                    </tr>

                                                </TABLE>

                                            </td>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: