我是个新手,做了个数据库分页,很简单的:string sql = "select top " + 5 + " * from tb_Reply where (Id > (select MAX(id) from (select top " + 5 * cpage + " id from tb_Reply order by Id)T ))";我想问下我在页面上传当前页码的值给数据库,可我是在js里声明的变量 var cpage, 但我不能在后台转换成int类型啊,希望各位前辈能够指点我一下,虽然问题很幼稚,希望能够体谅一下新人,我做了这个做了很久,都感觉要崩溃了,如果有更好的方法,也希望能够告诉我,最好具体点,人比较笨,谢谢!!!

解决方案 »

  1.   

    5 *(cast ( cpage as int ))
      

  2.   

            /// <summary>
            /// 从DataReader中读取分页的数据
            /// </summary>
            /// <param name="SQLString">sql语句</param>
            /// <param name="pageNumber">需要的页数(第几页)</param>
            /// <param name="onePageRow">每一页的记录行数</param>
            /// <param name="rowCount">总记录数</param>
            /// <returns>DataTable</returns>
            virtual public DataTable ExecuteDateReader( string SQLString, int pageNumber, int onePageRow, out int rowCount )
            {
                
                this.Open( );
                this.dbCmd.CommandText = SQLString;
                this.dbCmd.Connection = this.dbConn;
                try
                {
                    if( pageNumber < 1 || onePageRow < 1 )
                    {
                        rowCount = 0;
                        return null;
                    }                //System.Data.IDataReader.Common.DbDataReader dr = ( System.Data.Common.DbDataReader )this.dbCmd.ExecuteReader( );
                    System.Data.IDataReader dr = this.dbCmd.ExecuteReader( );
                   
                    return CreatDataTable( dr, pageNumber, onePageRow, out rowCount );            }
                catch( Exception ex )
                {
                    if( this.DBAccessError != null )
                    {
                        this.DBAccessError( ex , SQLString , null );
                    }
                    rowCount = 0;
                    return null;
                }
                finally
                {
                    this.Close( );
                }
            }
    这个函数中pageNumber就是页面显示的第几页
      

  3.   

    你写的分页是不对的。首先“+5+”;后面用id>select max(id)是个错误的选择,试想如果存在排序的情况,你如何来判断勒。我不是很明白你的也是,你说你要把cpage这个值传到后台吗?给你个很笨的方法,就是用个隐藏控件,js把值赋给他,你就可以在后台来取了。你直接用convert.toint32(值);就是你要的页数了。
      

  4.   

    select top 5 * from Products where productid>= (SELECT max(productid ) from (select top 5 productid from Products order by productid ) as t ) order by productid 
    5 * cast(cpage as int)