<%...@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">... </script><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>如何利用 DataReader 实现分页</title></head><body ><div><%... System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database=pubs;uid=sa;pwd="); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("",conn); int rowIndex=1; int pageId=1; int maxRow=1; int maxPage=1; int pageSize = 5; if (Request.QueryString["pageId"] == null) { pageId = 1; } else { pageId = int.Parse(Request.QueryString["pageId"].Trim()); } try { if (conn.State == System.Data.ConnectionState.Closed) { conn.Open(); } cmd.CommandText = "select count(*) from authors"; maxRow = (int)cmd.ExecuteScalar(); maxPage=(maxRow%pageSize>0)?(maxRow/pageSize+1):(maxRow/pageSize); cmd.CommandText = "select au_id,au_lname,au_fname,phone,address from authors"; System.Data.SqlClient.SqlDataReader dr = cmd.ExecuteReader(); for (int i = 0; i < (pageId - 1) * pageSize;i++ ) { dr.Read(); rowIndex++; } for (int i = rowIndex; i <(rowIndex+ pageSize);i++ ) { if (dr.Read()) { Response.Write(i.ToString()); Response.Write(" "); Response.Write(dr["au_id"].ToString()); Response.Write(" "); Response.Write(dr["au_lname"].ToString()); Response.Write(" "); Response.Write(dr["au_fname"].ToString()); Response.Write(" "); Response.Write(dr["phone"].ToString()); Response.Write(" "); Response.Write(dr["address"].ToString()); Response.Write(" "); Response.Write("<hr/>"); } } } catch (System.Data.SqlClient.SqlException e) { Response.Write(e.Message.ToString()); } finally { if (conn.State == System.Data.ConnectionState.Open) { conn.Close(); } } %><a href="DataReader2.aspx?pageId=1">第一页</a> || <a href="DataReader2.aspx?pageId=<%=(pageId>1)?(pageId-1):1 %>">上一页</a> || <a href="DataReader2.aspx?pageId=<%=(pageId<maxPage)?(pageId+1):maxPage %>">下一页</a> || <a href="DataReader2.aspx?pageId=<%=maxPage %>">最后页</a><hr />记录总数为:<%=maxRow %><br />页码总数为:<%=maxPage %><br />当前页码为:<%=pageId %></div></body></html>