导读:
  前段时间因工作需要写了段ASP.NET手工分页程序,几经修改优化,或许因本人知识有限,觉得其性能已经不能再提高多少。故将之发布上来与大家分享,欢迎大家提出更进一步的优化方法。
  [Gerry] 2006-5-9
  <%@ Page Language="C#" Debug="true" %>
  <%@ImportNamespace="System.Data"%>
  <%@ImportNamespace="System.Data.SqlClient"%>
  <script Language="C#" runat="server">
  String PageName="wznPage"; //配置本页面的页面名字与本文件名相同
  String TableName="Ticket"; //配置要查询的数据库表的名字
  String IndexID="TicketAutoId"; //配置数据库表的主索引排序ID
  String ConnString="server=localhost;uid=sa;pwd=;database=qq3"; //配置数据库连接字符串
  int PageSize=7; //配置每页显示记录数
  SqlConnection conn; //定义连接数据库全局变量
  void Page_Load(Object src,EventArgs e)
  {
  conn =new SqlConnection(ConnString);
  conn.Open(); //建立与数据库的连接
  int RecordCount=0; //总共记录数
  int PageCount=0; //总共页数
  int CurrentPage=0; //当前页码
  
  RecordCount = CountRecord(); //计算总共有多少记录
  PageCount = RecordCount/PageSize; //计算总共有多少页 取整
  if (RecordCount%PageSize >0) {
  PageCount = PageCount + 1; //如果不整除则加一页来显示除后剩余记录
  }
  if (Request.QueryString["page"]!=null) {
  CurrentPage = Convert.ToInt32(Request.QueryString["page"]); //获得页的值
  }
  else {
  CurrentPage = 1;
  }
  //核心sql语句部分
  string sql;
  sql="select top "+PageSize+" * from "+ TableName +" where "+ IndexID +" not in (";
  sql+=" select top "+((CurrentPage-1)*PageSize)+" "+ IndexID +" from "+ TableName +" order by "+ IndexID +"";
  sql+=" ) order by "+ IndexID +"";
  //Response.Write("sql:"+sql);
  SqlCommand cmd=new SqlCommand(sql,conn);
  SqlDataReader myReader = cmd.ExecuteReader();
  string mainHtml="

";   int i=1;   while(myReader.Read())   {   mainHtml+="

本页第"+ i +"条数据:

";   mainHtml+="

数据表第1个字段的值是:"+myReader[0].ToString().Trim()+"

";   mainHtml+="

数据表第2个字段的值是:"+myReader[1].ToString().Trim()+"

";   mainHtml+="

数据表第3个字段的值是:"+myReader[2].ToString().Trim()+"

";   mainHtml+="


";   i++;   }   mainHtml+="";
  myReader.Close();
  int pagePre,pageNext;
  pagePre=CurrentPage-1;
  pageNext=CurrentPage+1;
  string pageHtml;
  if (pagePre==0) {
  pageHtml="首页 上页";
  }
  else {
  pageHtml=" 首页  上页";
  }
  if (pageNext>PageCount) {
  pageHtml+=" 下页 末页";
  }
  else {
  pageHtml+="  下页";
  pageHtml+="  末页";
  }
  mblist.InnerHtml = mainHtml; //给分页主内容标签赋值
  lblPageCount.Text = PageCount.ToString(); //给总页数标签赋值
  lblRecordCount.Text = RecordCount.ToString();//给总记录数标签赋值
  lblCurrentPage.Text = CurrentPage.ToString();//给当前页码标签赋值
  pagelist.InnerHtml = pageHtml; //给翻页链接标签赋值
  }
  //统计数据库表中记录总数的函数
  public int CountRecord()
  {
  int intCount = 0;
  string sql = "select count(*) from "+ TableName;
  SqlCommand cmd = new SqlCommand(sql,conn);
  SqlDataReader myReader = cmd.ExecuteReader();
  if(myReader.Read()) {
  intCount = Int32.Parse(myReader[0].ToString());
  }
  myReader.Close();
  return intCount;
  }
  </script>
  
  
  
   #
  
  
  
  
  

  

  

  
  
  

  

  

共有
  
  条记录 当前为
  
  /
  
  页

  


  

  
  
  
  
  Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=714105

本文转自
http://blog.csdn.net/wangzhenning/archive/2006/05/09/714105.aspx

ASP.NET极速DataReader分页程序 - Gerry的专栏 - CSDNBlog相关推荐

  1. 在应用中嵌入Python - lf8289的专栏 - CSDNBlog

    在应用中嵌入Python - lf8289的专栏 - CSDNBlog " 在应用中嵌入Python收藏 新一篇: 软件在线升级设计方案及演变过程分析 | 旧一篇: 在windows下面关闭 ...

  2. HTML(3):IE浏览器编程 - vcmute的专栏 - CSDNBlog

    导读: Q 求救!!! 取ie浏览器文字乱码问题,高分相赠!!! T 我所写的一个程序中有这样一个功能:用户选取了ie浏览器中的一段文字copy到剪贴板,我的程序从剪贴板中取出文字并显示在edit框中 ...

  3. 【原】在vc中实现获取汉字拼音的首字母 - lixiaosan的专栏 - CSDNBlog

    导读: Author: lixiaosan Date: 05/26/2006 /************************************************************ ...

  4. mysql 字符串的hash函数_经典字符串Hash函数介绍 - yanjun_1982的专栏 - CSDNBlog

    作者阅读过大量经典软件原代码,下面分别介绍几个经典软件中出现的字符串Hash函数. 2.1 PHP中出现的字符串Hash函数 static unsigned long hashpjw(char *ar ...

  5. 使用多媒体API枚举音频设备 - zgl7903的专栏 - CSDNBlog

    导读: //============================================================================= //============== ...

  6. jsp使用自定义标签taglib分页系列——SearchForm - cao_david的专栏 - CSDNBlog

    导读: package com.adroit.nidus.taglib.html; import org.apache.struts.validator.ValidatorForm; /** * Ti ...

  7. 通过pxe从网络启动安装Windows XP - dragonbbc的专栏 - CSDNBlog

    导读: 新一篇: 光盘的文件复用 | 旧一篇: 如何在stdin(键盘)中输入EOF呢?版权声明:本文是在参考了互联网上一些文章,并以这些文章为指导在本地环境下进行操作实践,并根据操作实际情况写出来的 ...

  8. GridView绑定数据源 绑定DataReader /DataSet /DataTable

    有一个GridView1 <asp:GridView ID="GridView1" runat="server"></asp:GridView ...

  9. asp.net学习之ado.net(连接模式访问)

    ado.net框架支持两种模式的数据访问: 连接模式(Connected)和非连接模式(disconnected).这一节介绍如何使用连接模式访问数据库中的数据,利用ADO.NET中的Connecti ...

  10. gitlab中文_ASP.NET实战010:Visual Studio使用GitLab详解

    什么是GitLab GitLab是一个类似于Github的仓库管理系统的开源项目,是基于Git代码管理工具实现的在线代码仓库托管web服务,支持版本管理.任务管理.项目管理.团队管理.代码浏览.持续集 ...

最新文章

  1. Android Https相关完全解析 当OkHttp遇到Https
  2. CF双端总决赛还是LGD总决赛?端游战队挺进决赛,手游已拿三连冠
  3. php str cmp,php中整数的strcmp equivalent(intcmp)
  4. Linux命令速查手册出炉!
  5. Android开发笔记(三十七)按钮类控件
  6. bootstrap获取选中行的主键_深入分析Mybatis 使用useGeneratedKeys获取自增主键
  7. 2月26 ubuntu系统备份还原到相同电脑、另一台电脑
  8. Android影院选座
  9. visio画图小技巧记录
  10. Android入门:HttpClient介绍
  11. “非常晚餐”第一期 “3D虚拟世界”是“黑客帝国”吗?
  12. vivo Z1的USB调试模式在哪里,打开vivo Z1USB调试模式的经验
  13. C语言apr_socket,APR分析-高级IO篇
  14. Element概述、入门案例及布局
  15. 使用Tab键控制切换网页光标位置
  16. Mac 如何强制关机?
  17. EF-AsNoTracking()
  18. Redmi Note 9 Pro 5G 换手机重新安装谷歌服务 Google Play
  19. 各种遥感数据,地理信息数据共享网站
  20. ERP系统-销售子系统-销售换货/退货单

热门文章

  1. 小白秒变大神--windows窗口+装B神器大全 两部曲
  2. ONOS 以及 ODL
  3. layui上传文件的choose只触发一次
  4. 艾永亮:亏损7年到年销100亿,百果园如何在小水果里做出大生意?
  5. 云计算第四次作业—web网站的搭建
  6. 通常我们将python语言程序保存在一个后缀_c 语言程序设计 沈显君课后答案
  7. 深圳一普通中学老师工资单曝光,秒杀程序员
  8. python画喜羊羊代码_python学习笔记7-字典
  9. 近来开发工作不忙,零零散散整理的Java基础
  10. 2012服务器优化工具,Windows server 2012服务器安全加固与web环境配置优化