ASP.NET极速DataReader分页程序 - Gerry的专栏 - CSDNBlog
导读:
前段时间因工作需要写了段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相关推荐
- 在应用中嵌入Python - lf8289的专栏 - CSDNBlog
在应用中嵌入Python - lf8289的专栏 - CSDNBlog " 在应用中嵌入Python收藏 新一篇: 软件在线升级设计方案及演变过程分析 | 旧一篇: 在windows下面关闭 ...
- HTML(3):IE浏览器编程 - vcmute的专栏 - CSDNBlog
导读: Q 求救!!! 取ie浏览器文字乱码问题,高分相赠!!! T 我所写的一个程序中有这样一个功能:用户选取了ie浏览器中的一段文字copy到剪贴板,我的程序从剪贴板中取出文字并显示在edit框中 ...
- 【原】在vc中实现获取汉字拼音的首字母 - lixiaosan的专栏 - CSDNBlog
导读: Author: lixiaosan Date: 05/26/2006 /************************************************************ ...
- mysql 字符串的hash函数_经典字符串Hash函数介绍 - yanjun_1982的专栏 - CSDNBlog
作者阅读过大量经典软件原代码,下面分别介绍几个经典软件中出现的字符串Hash函数. 2.1 PHP中出现的字符串Hash函数 static unsigned long hashpjw(char *ar ...
- 使用多媒体API枚举音频设备 - zgl7903的专栏 - CSDNBlog
导读: //============================================================================= //============== ...
- jsp使用自定义标签taglib分页系列——SearchForm - cao_david的专栏 - CSDNBlog
导读: package com.adroit.nidus.taglib.html; import org.apache.struts.validator.ValidatorForm; /** * Ti ...
- 通过pxe从网络启动安装Windows XP - dragonbbc的专栏 - CSDNBlog
导读: 新一篇: 光盘的文件复用 | 旧一篇: 如何在stdin(键盘)中输入EOF呢?版权声明:本文是在参考了互联网上一些文章,并以这些文章为指导在本地环境下进行操作实践,并根据操作实际情况写出来的 ...
- GridView绑定数据源 绑定DataReader /DataSet /DataTable
有一个GridView1 <asp:GridView ID="GridView1" runat="server"></asp:GridView ...
- asp.net学习之ado.net(连接模式访问)
ado.net框架支持两种模式的数据访问: 连接模式(Connected)和非连接模式(disconnected).这一节介绍如何使用连接模式访问数据库中的数据,利用ADO.NET中的Connecti ...
- gitlab中文_ASP.NET实战010:Visual Studio使用GitLab详解
什么是GitLab GitLab是一个类似于Github的仓库管理系统的开源项目,是基于Git代码管理工具实现的在线代码仓库托管web服务,支持版本管理.任务管理.项目管理.团队管理.代码浏览.持续集 ...
最新文章
- Android Https相关完全解析 当OkHttp遇到Https
- CF双端总决赛还是LGD总决赛?端游战队挺进决赛,手游已拿三连冠
- php str cmp,php中整数的strcmp equivalent(intcmp)
- Linux命令速查手册出炉!
- Android开发笔记(三十七)按钮类控件
- bootstrap获取选中行的主键_深入分析Mybatis 使用useGeneratedKeys获取自增主键
- 2月26 ubuntu系统备份还原到相同电脑、另一台电脑
- Android影院选座
- visio画图小技巧记录
- Android入门:HttpClient介绍
- “非常晚餐”第一期 “3D虚拟世界”是“黑客帝国”吗?
- vivo Z1的USB调试模式在哪里,打开vivo Z1USB调试模式的经验
- C语言apr_socket,APR分析-高级IO篇
- Element概述、入门案例及布局
- 使用Tab键控制切换网页光标位置
- Mac 如何强制关机?
- EF-AsNoTracking()
- Redmi Note 9 Pro 5G 换手机重新安装谷歌服务 Google Play
- 各种遥感数据,地理信息数据共享网站
- ERP系统-销售子系统-销售换货/退货单