存储过程分页,前台应用范例---repeater分页

本文介绍了一个ASP.NET应用程序中实现数据分页显示的方法。通过使用存储过程和Repeater控件,文章详细展示了如何从数据库中获取数据,并将其绑定到网页上进行分页展示。此外,还提供了具体的代码实现,包括数据库连接配置、页面加载事件处理以及存储过程参数设置等。

private string connectionString = "server=(local);database=database;uid=****;pwd=*** ";   //数据库连接字符串
protected void Page_Load(object sender, EventArgs e)
{
     if (!Page.IsPostBack)
     {
         BindDataList();
     }
}

protected void BindDataList()
{
     string strSql = "SELECT * FROM t1";
     string fieldOrder = "id ASC";
     int records = 0;
     Repeater1.DataSource = GetDataList(strSql, fieldOrder, Pager1.PageSize, Pager1.PageIndex, out records);   //读取数据源并绑定
     Repeater1.DataBind();
     //设置页面(必须)
     Pager1.SetPage(records);    //初始化分页条
}

/// <summary>
/// 使用存储过程取出数据
/// </summary>
/// <param name="strSql"></param>
/// <param name="fieldOrder"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="records"></param>
/// <returns>数据表datatable</returns>
public DataTable GetDataList(string strSql, string fieldOrder, int pageSize, int pageIndex, out int records)
{
     DataTable dt = null;//返回的数据集  
     records = 0;//事先赋值
     using (SqlConnection sqlConn = new SqlConnection(connectionString))
     {
         //打开连接
         sqlConn.Open();
         //初始化参数
         SqlCommand sqlCmd = new SqlCommand();
         sqlCmd.Connection = sqlConn;
         sqlCmd.CommandText = "SP_Page";
         sqlCmd.CommandType = CommandType.StoredProcedure;

         #region  ___存储过程参数___
         SqlParameter recordsParam = new SqlParameter("@TotalCount", SqlDbType.Int, 32);
         recordsParam.Direction = ParameterDirection.Output;
         //创建
         sqlCmd.Parameters.Add(new SqlParameter("@Sql", SqlDbType.NVarChar, 1024));
         sqlCmd.Parameters.Add(new SqlParameter("@Sort", SqlDbType.NVarChar, 100));
         sqlCmd.Parameters.Add(new SqlParameter("@PageSize", SqlDbType.Int, 32));
         sqlCmd.Parameters.Add(new SqlParameter("@PageIndex", SqlDbType.Int, 32));
         sqlCmd.Parameters.Add(recordsParam);
         //赋值
         sqlCmd.Parameters[0].Value = strSql;
         sqlCmd.Parameters[1].Value = fieldOrder;
         sqlCmd.Parameters[2].Value = pageSize;
         sqlCmd.Parameters[3].Value = pageIndex;
         sqlCmd.Parameters[4].Direction = ParameterDirection.Output;
         #endregion ___存储过程参数___

         //取数据
         DataSet ds = new DataSet();
         SqlDataAdapter sda = new SqlDataAdapter(sqlCmd);
         sda.Fill(ds);
         if (ds != null && ds.Tables.Count > 0)
         {
             dt = ds.Tables[0];
         }
         records = (int)recordsParam.Value;  //返回记录数
         //释放资源
         if (sqlConn != null)
         {
             sqlConn.Close();
             sqlConn.Dispose();
         }
     }
     return dt;
}

转载于:https://www.cnblogs.com/houweidong/archive/2013/03/24/2978131.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值