实现环境:SQL Server 2005 Express + VWD 2008 Express Edition
说明:关系数据库及表的详细情况请参看我的上一篇文章《实例讲解用.NET技术将Excel表格中的数据导入到特定的数据库中》。
第一步:存储过程GetRecordFromPage
代码:
说明:该存储教程中用了两个输入参数@PageIndex和@PageSize,用以表示页码和每页显示的数据记录条数,注意PageIndex是实际显示的页码数值减1;两个输出参数@RecordCount和@PageCount,用以表示表中总的记录数和可以分的页码数量。
原理:将两个有关联的表Category和UserInfo中的数据选择出来,并根据行数添加一字段RowNumber放到一临时表temp_table中,之后再从该临时表中查找指定页码的记录。
第二步:在DAL层添加方法:
(1)RecordPage方法,功能:传入页码和每页要显示的记录数,返回所需要的记录
代码:
(2)RecordPageCount方法,功能:返回总的页数。
代码:
第三步:在网页中调用:
当然,首先要在BLL层写相应的RecordPage()和RecordPageCount()方法代码。
(1)前台:
(2)后台:
说明:关系数据库及表的详细情况请参看我的上一篇文章《实例讲解用.NET技术将Excel表格中的数据导入到特定的数据库中》。
第一步:存储过程GetRecordFromPage
代码:
ALTER PROCEDURE GetRecordFromPage @PageIndex int, @PageSize int, @RecordCount int out, @PageCount int out AS BEGIN select @RecordCount=Count(*) from UserInfo select @PageCount=ceiling(@RecordCount/@PageSize) select * from (select u.Id,u.UserName,u.UserAddress,u.UserTelephone,c.Model,u.InstallationDate,u.Amount,u.AccessoriesModel,u.InstallationName,u.Notes,Row_Number() over (order by u.Id) as RowNumber from UserInfo u inner join Category c on u.Caid=c.Id) as temp_table where temp_table.RowNumber>(@PageIndex*@PageSize) and temp_table.RowNumber<=((@PageIndex+1)*@PageSize) END
说明:该存储教程中用了两个输入参数@PageIndex和@PageSize,用以表示页码和每页显示的数据记录条数,注意PageIndex是实际显示的页码数值减1;两个输出参数@RecordCount和@PageCount,用以表示表中总的记录数和可以分的页码数量。
原理:将两个有关联的表Category和UserInfo中的数据选择出来,并根据行数添加一字段RowNumber放到一临时表temp_table中,之后再从该临时表中查找指定页码的记录。
第二步:在DAL层添加方法:
(1)RecordPage方法,功能:传入页码和每页要显示的记录数,返回所需要的记录
代码:
public DataTable RecordPage(int pageIndex, int pageSize) { DataTable dt = new DataTable(); SqlDataReader sdr = null; string connStr=@"server=PC2009080519VDZ\SQLEXPRESS;database=yuajiasys;uid=sa;pwd=123456"; SqlConnection conn=new SqlConnection(connStr); conn.Open(); SqlCommand cmd=new SqlCommand("GetRecordFromPage",conn); cmd.CommandType=CommandType.StoredProcedure; cmd.Parameters.Add("@PageIndex",SqlDbType.Int); cmd.Parameters["@PageIndex"].Value = pageIndex; cmd.Parameters.Add("@PageSize",SqlDbType.Int); cmd.Parameters["@PageSize"].Value = pageSize; cmd.Parameters.Add("@RecordCount",SqlDbType.Int); cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output; cmd.Parameters.Add("@PageCount", SqlDbType.Int); cmd.Parameters["@PageCount"].Direction = ParameterDirection.Output; sdr = cmd.ExecuteReader(); dt.Load(sdr); sdr.Close(); conn.Close(); return dt; }
(2)RecordPageCount方法,功能:返回总的页数。
代码:
public int RecordPageCount(int pageIndex, int pageSize) { int recordCount = 0; int pageCount = 0; DataTable dt = new DataTable(); SqlDataReader sdr = null; string connStr = @"server=PC2009080519VDZ\SQLEXPRESS;database=yuajiasys;uid=sa;pwd=123456"; SqlConnection conn = new SqlConnection(connStr); conn.Open(); SqlCommand cmd = new SqlCommand("GetRecordFromPage", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@PageIndex", SqlDbType.Int); cmd.Parameters["@PageIndex"].Value = pageIndex; cmd.Parameters.Add("@PageSize", SqlDbType.Int); cmd.Parameters["@PageSize"].Value = pageSize; cmd.Parameters.Add("@RecordCount", SqlDbType.Int); cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output; cmd.Parameters.Add("@PageCount", SqlDbType.Int); cmd.Parameters["@PageCount"].Direction = ParameterDirection.Output; sdr = cmd.ExecuteReader(); dt.Load(sdr); sdr.Close(); conn.Close(); recordCount = (int)cmd.Parameters["@RecordCount"].Value; pageCount = (int)cmd.Parameters["@PageCount"].Value; return pageCount; }
第三步:在网页中调用:
当然,首先要在BLL层写相应的RecordPage()和RecordPageCount()方法代码。
(1)前台:
...... <table> <tr><th>ID号</th><th>姓名</th><th>地址</th><th>电话</th><th>机型</th><th>安装日期</th><th>RowNumber</th></tr> <asp:Repeater ID="repuserinfo" runat="server"> <ItemTemplate> <tr> <td><%# Eval("Id") %></td> <td><%# Eval("UserName") %></td> <td><%# Eval("UserAddress") %></td> <td><%# Eval("UserTelephone") %></td> <td><%# Eval("Model") %></td> <td><%# Eval("InstallationDate") %></td> <td><%# Eval("RowNumber") %></td> </tr> </ItemTemplate> </asp:Repeater> </table> <p id="pginfo"> 第<asp:Label ID="lbpgIndex" runat="server" Text=""></asp:Label>页 共<asp:Label ID="lbpgCount" runat="server" Text=""></asp:Label>页 转到第<asp:TextBox ID="txttopgIndex" CssClass="pginput" runat="server"></asp:TextBox>页 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txttopgIndex" runat="server" ErrorMessage="请输入页码" Text="*" ValidationGroup="pginfo"></asp:RequiredFieldValidator> <asp:Button ID="btntopgIndex" runat="server" Text="Go" onclick="btntopgIndex_Click" ValidationGroup="pginfo" /> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="txttopgIndex" ValidationExpression="\d{1}[0-9]|\d{1}" runat="server" ErrorMessage="请输入数值" ValidationGroup="pginfo"></asp:RegularExpressionValidator> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary="false" ValidationGroup="pginfo" /> </p> ......
(2)后台:
...... private int pgSize = 100; protected void Page_Load(object sender, EventArgs e) { int pgCount = new UserInfoManager().RecordPageCount(1, pgSize); DataTable dt = new DataTable(); dt = new UserInfoManager().RecordPage(pgCount, pgSize); repuserinfo.DataSource = dt; repuserinfo.DataBind(); lbpgIndex.Text = Convert.ToString(pgCount+1); lbpgCount.Text = Convert.ToString(pgCount+1); } protected void btntopgIndex_Click(object sender, EventArgs e) { int pgIndex = int.Parse(txttopgIndex.Text); int pgCount = new UserInfoManager().RecordPageCount(1, pgSize); DataTable dt = new DataTable(); pgIndex -= 1; dt = new UserInfoManager().RecordPage(pgIndex, pgSize); repuserinfo.DataSource = dt; repuserinfo.DataBind(); lbpgIndex.Text = Convert.ToString(pgIndex+1); lbpgCount.Text = Convert.ToString(pgCount+1); txttopgIndex.Text = ""; } ......
发表评论
-
ASP.net把datatable与list转成json输出
2014-12-10 12:02 783源代码: //DataTable转成Json ... -
开发问题集锦
2014-09-18 16:45 6751.SWFUpload问题 "触发uploadErr ... -
repeater嵌套使用
2014-09-16 18:38 735前台: <div id="m ... -
ASP.NET环境下使用KindEditor
2013-11-26 16:46 2879最新版的KindEditor,按照在线文档http://www ... -
ASP.NET+jQuery轮播效果
2013-08-21 08:03 2806<style type="text/css&q ... -
ASP.NET与Sql Server数据库的空数据的交互
2013-08-02 22:55 956数据库中的字段:(1) ArticleId int型 外键 可 ... -
设置网页的Title、keywords和description
2013-03-20 15:35 797protected void Page_Load(obje ... -
再谈<<在ASP.NET中重写URL>>
2013-02-20 09:17 863将之前的<<在ASP.NET中重写URL>& ... -
VS2010母版版引入js和css文件
2012-10-31 17:15 833动态引入js文件和css样式表文件 1 引入js文件 Ht ... -
.NET网站中利用jQuery Ajax获取后台数据
2011-12-19 11:59 3236一般处理程序 using System.Web.Script. ... -
解决:Sys.WebForms.PageRequestManagerServerErrorException(status code 500 OR 12031)
2011-12-09 10:21 1245解决:Sys.WebForms.PageRequestMana ... -
在ASP.NET中重写URL
2011-12-08 18:02 735目标:将网页地址伪静态 实现:在Global.asax中改写: ... -
ashx文件使用Session(转)
2011-12-02 11:25 827查阅MSDN得到ashx文件要使用Session,必须实现Se ... -
作品展示
2011-11-05 16:27 793刚开发完成 看一下效果 [img][/img] ... -
ASP.NET上传大文件
2011-10-27 17:20 3994上网下一个neatupload 1.2.32的压缩包:(附压缩 ... -
asp .NET弹出窗口汇总(转)
2011-08-16 09:39 595注: //关闭,父窗口弹出对话框,子窗口直接关闭 this ... -
精通ASP.NET中弹出窗口技术(转)
2011-08-16 09:36 887摘要:本文讨论如 ... -
asp.net中的验证控件的使用
2010-04-07 16:35 965前台: <h4>验证控件使用测试< ... -
.net利用AJAX实现局部刷新
2010-04-07 16:30 3316前台: <div> ... -
一个SQL Server2000和2005都能用的分页方法
2010-04-07 16:25 990(1)存储过程(SQL2000和2005下都可用): ...
相关推荐
ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页
asp.net中分页的实现 asp.net中分页的实现 asp.net中分页的实现
asp.net AJAX分页 分页代码asp.net AJAX分页 分页代码asp.net AJAX分页 分页代码asp.net AJAX分页 分页代码
C# ASP.net自定义分页
asp.net 自定义分页,内置演示分页SQL数据库。
ASP.net中分页的实现方式之一,使用SQL语句实现分页。另外本资源内含有图片上传的方法及GridView控件的使用。
模仿淘宝的asp.net2.0 分页控件, 内符dll和说明.
ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件
使用AspNetPager控件实现ASP.NET分页功能 “控件+源代码”!!
ASP.NET MVC分页 第几页 共几页 首页 末页
asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net轻松实现中的分页 asp.net...
asp.net通用分页控件AspNetPager7.2
上传的是关于mvc分页功能的简单方法。这些是关于asp.net mvc里面的Pager的扩展。里面有包含mvcpager这个标签的扩展。功能较pager标签而言更加强大。
asp.net文章分页:当我们的新闻字数很多的时候,想要分页怎么办?本项目里就有全部的方法
博客里有介绍:http://blog.csdn.net/vaivxuanzi/article/details/8036353 演示在这里:http://z-world.cc/
压缩包中包含了 三个不同的压缩文件 Ajax分页 Asp.net 分页 以及提供这些分页的项目代码和真实的Demo 可以下载下来直接 运行 ...
asp.net利用存储过程分页代码,代码很详细,有建库脚本和页面的调用。
ASP.NET MVC 分页 ASP.NET MVC 分页 ASP.NET MVC 分页
asp.net 实现分页代码 分页代码 分页代码 分页代码 分页代码 分页代码 分页代码