zoukankan      html  css  js  c++  java
  • AspnetPager+sql2005存储过程分页

    代码
    create  PROCEDURE [dbo].[P_GetPagedReCord] 
    (
    @startIndex INT-- 开始索引号 
    @endindex INT-- 结束索引号 
    @tblName varchar(255), -- 表名 
    @fldName varchar(255), -- 显示字段名 
    @OrderfldName varchar(255), -- 排序字段名 
    @IsReCount bit = 0-- 返回记录总数, 非 0 值则返回 
    @OrderType bit = 0-- 设置排序类型, 非 0 值则降序 
    @strWhere varchar(1000= '' -- 查询条件 (注意: 不要加 where) 

    AS 
    declare @strSQL varchar(6000-- 主语句 
    declare @strTmp varchar(100)-- 临时变量 
    declare @strOrder varchar(400-- 排序类型 
    if @OrderType!=0 
    Begin 
    set @strOrder='Desc' 
    End 
    else 
    Begin 
    set @strOrder='Asc' 
    End 
    set @strSQL ='WITH orderList AS ( '+ 
    'SELECT ROW_NUMBER() OVER (ORDER BY '+@OrderfldName+' '+@strOrder+')AS Row, '+@fldName+' '+ 
    'from '+@tblName 
    if @strWhere!='' 
    set @strSQL = @strSQL+' where ' + @strWhere 
    set @strSQL=@strSQL+')'+ 
    'SELECT '+@fldName+' '+ 
    'FROM orderlist '+ 
    'WHERE Row between '+str(@startIndex)+' and '+str(@endIndex)+'' 

    if @IsReCount != 0 
    Begin 
    set @strSQL = ' select count(1) as Total from [' + @tblName + ']' 
    if @strWhere!='' 
    set @strSQL = @strSQL+' where ' + @strWhere 
    End 
    --print(@strSQL) 
    exec (@strSQL
    代码
        /// <summary>
        
    /// 获得记录集
        
    /// </summary>
        
    /// <param name="start"></param>
        
    /// <param name="end"></param>
        
    /// <param name="where"></param>
        
    /// <returns></returns>
        public DataTable GetdataSet(int start,int end,string where)
        {
            SqlParameter[] parms 
    = { 
                                   
    new SqlParameter("@startIndex",SqlDbType.Int),
                                   
    new SqlParameter("@endindex",SqlDbType.Int),
                                   
    new SqlParameter("@tblName",SqlDbType.VarChar,255),
                                   
    new SqlParameter("@fldName",SqlDbType.VarChar,255),
                                   
    new SqlParameter("@OrderfldName",SqlDbType.VarChar,255),
                                   
    new SqlParameter("@IsReCount",SqlDbType.Bit),
                                   
    new SqlParameter("@OrderType",SqlDbType.Bit),
                                   
    new SqlParameter("@strWhere",SqlDbType.VarChar,1000)
                                   };
            parms[
    0].Value = start;
            parms[
    1].Value = end;
            parms[
    2].Value = "t_user";
            parms[
    3].Value = "id,user_name,user_age";
            parms[
    4].Value = "id";
            parms[
    5].Value = 0;
            parms[
    6].Value = 0;
            parms[
    7].Value = where;
            
    return db.RunProcDataTable("[P_GetPagedReCord]", parms);
        }
        
    /// <summary>
        
    /// 取得记录总数
        
    /// </summary>
        
    /// <param name="where"></param>
        
    /// <returns></returns>
        public int GetAllcount(string where )
        {
            SqlParameter[] parms 
    = { 
                                   
    new SqlParameter("@startIndex",SqlDbType.Int),
                                   
    new SqlParameter("@endindex",SqlDbType.Int),
                                   
    new SqlParameter("@tblName",SqlDbType.VarChar,255),
                                   
    new SqlParameter("@fldName",SqlDbType.VarChar,255),
                                   
    new SqlParameter("@OrderfldName",SqlDbType.VarChar,255),
                                   
    new SqlParameter("@IsReCount",SqlDbType.Bit),
                                   
    new SqlParameter("@OrderType",SqlDbType.Bit),
                                   
    new SqlParameter("@strWhere",SqlDbType.VarChar,1000)
                                   };
            parms[
    0].Value = 0;
            parms[
    1].Value = 0;
            parms[
    2].Value = "t_user";
            parms[
    3].Value = "id,user_name,user_age";
            parms[
    4].Value = "id";
            parms[
    5].Value = 1;
            parms[
    6].Value = 0;
            parms[
    7].Value = where;
            
    return Convert.ToInt32(db.RunProcDataTable("[P_GetPagedReCord]", parms).Rows[0][0]) ;
        }

    页面调用:

    代码
        BLL bll = new BLL();
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!IsPostBack)
            {
                bding(
    "id>10");
            }
        }

        
    private void bding(string where )
        {
            
    this.AspNetPager1.PageSize=10;
            
    this.AspNetPager1.RecordCount = bll.GetAllcount(where);
            DataTable dt
    = bll.GetdataSet(this.AspNetPager1.StartRecordIndex, this.AspNetPager1.EndRecordIndex, where);
            
    this.GridView1.DataSource = dt;
            
    this.GridView1.DataBind();
        }

        
    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            bding(
    "id>10");
        }
  • 相关阅读:
    java基础总结
    用JNDI连接数据库
    利用Java生成UUID
    Java读取properties文件连接数据库
    数据库的三大范式
    SQL优化技巧
    jar包和war包的介绍与区别
    maven简介
    Java运行时内存划分
    Java线程中断机制-如何中断线程
  • 原文地址:https://www.cnblogs.com/bobofsj11/p/1716331.html
Copyright © 2011-2022 走看看