- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章asp.net中用DataReader高效率分页由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
分享一下两种方式的分页代码 1.用DataReader分页 。
复制代码代码如下
/// <summary> /// PageList for DataReader /// </summary> /// <param name="connectionString"></param> /// <param name="sql"></param> /// <param name="pageSize"></param> /// <param name="curPage"></param> /// <param name="pageCount"></param> /// <param name="count"></param> /// <param name="cmdParms"></param> /// <returns></returns> public DataTable PageListReader(string connectionString, string sql, int pageSize, int curPage, out int pageCount, out int count, params DbParameter[] cmdParms) { int first = 0; int last = 0; int fieldCount = 0; using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = conn.CreateCommand(); PrepareCommand(cmd, conn, null, CommandType.Text, sql, cmdParms); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); DataTable dt = new DataTable(); fieldCount = reader.FieldCount; for (int i = 0; i < fieldCount; i++) { DataColumn col = new DataColumn(); col.ColumnName = reader.GetName(i); col.DataType = reader.GetFieldType(i); dt.Columns.Add(col); } count = 0; first = (curPage - 1) * pageSize+1; last = curPage * pageSize; while (reader.Read()) { count++; if (count >= first && last >= count) { DataRow r = dt.NewRow(); for (int i = 0; i < fieldCount; i++) { r[i] = reader[i]; } dt.Rows.Add(r); } } reader.Close(); pageCount = Convert.ToInt32(Math.Ceiling((double)count / (double)pageSize)); return dt; } } 。
2.用ROW_NUMBER()分页 。
复制代码代码如下
/// <summary> /// 分页获取数据(Sql Server 2005) for ROW_NUMBER() /// </summary> /// <param name="connectionString">数据库链接</param> /// <param name="sql">获取数据集的Sql</param> /// <param name="fldSort">排序字段,可以多个</param> /// <param name="pageSize">每页显示多少条</param> /// <param name="curPage">当前页码</param> /// <param name="pageCount">总页数</param> /// <param name="count">总记录数</param> ///<param name="cmdParms">DbParameter</param> /// <returns>DataTable</returns> public DataTable PageList(string connectionString, string sql, string fldSort, int pageSize, int curPage, out int pageCount, out int count, params DbParameter[] cmdParms) { StringBuilder strSql = new StringBuilder(); strSql.AppendFormat(@"SELECT count(0) from {0} as MyTableCount; select * from ( SELECT ROW_NUMBER() OVER(order by {1}) RowNumber,* from {0} mytable ) mytable2 where RowNumber between {2} and {3}" , sql, fldSort, Convert.ToString((curPage - 1) * pageSize + 1), Convert.ToString((curPage * pageSize))); DataSet ds = ExecuteQuery(connectionString, CommandType.Text, strSql.ToString(), cmdParms); count = Convert.ToInt32(ds.Tables[0].Rows[0][0]); pageCount = Convert.ToInt32(Math.Ceiling((double)count / (double)pageSize)); return ds.Tables[1]; } 。
最后此篇关于asp.net中用DataReader高效率分页的文章就讲到这里了,如果你想了解更多关于asp.net中用DataReader高效率分页的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
正则表达式简介 正则表达式,又称正规表示法、常规表示法。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达
我是一名优秀的程序员,十分优秀!