asp.net结合aspnetpager用sql语句分页

数据库操作类:

复制代码 代码如下:

/// <summary> 

/// 取得总数 

/// </summary> 

/// <returns></returns> 

public string getTotal() 

{ 

StringBuilder sb = new StringBuilder(); 

sb.Append("select count(*) total from Test"); 

DataTable dt = DBHelper.ExecuteDt(sb.ToString()); 

return dt.Rows[0][0].ToString(); 

} 

/// <summary> 

/// 根据当前页码,每页条数,取得相应数据。 

/// </summary> 

/// <param name="pageNum">每页显示条数</param> 

/// <param name="currentPage">当前页码</param> 

/// <returns></returns> 

public DataTable getPagesData(int pageNum, int currentPage) 

{ 

StringBuilder sb = new StringBuilder(); 

sb.Append("select top " + pageNum + " * from Test where "); 

sb.Append("ID not in (select top " + pageNum * currentPage + " ID from Test)"); 

return DBHelper.ExecuteDt(sb.ToString()); 

}



前台:

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="sqlPager_Default" %> 

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 

<head runat="server"> 

<title>不用存储过程的分页</title> 

</head> 

<body> 

<form id="form1" runat="server"> 

<div> 

<asp:gridview ID="gvSql" runat="server"> 

</asp:gridview> 

</div> 

<div> 

<webdiyer:aspnetpager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged" PageSize="3"> 

</webdiyer:aspnetpager> 

</div> 

</form> 

</body> 

</html>



后台:

复制代码 代码如下:

using System; 

using System.Data; 

using System.Configuration; 

using System.Collections; 

using System.Web; 

using System.Web.Security; 

using System.Web.UI; 

using System.Web.UI.WebControls; 

using System.Web.UI.WebControls.WebParts; 

using System.Web.UI.HtmlControls; 

public partial class sqlPager_Default : System.Web.UI.Page 

{ 

BLL.Test test = new BLL.Test(); 

protected void Page_Load(object sender, EventArgs e) 

{ 

if (!IsPostBack) 

{ 

AspNetPager1.RecordCount = Convert.ToInt32(test.getTotal());//此属性保存总记录数.. 

Bind(); 

} 

} 

private void Bind() 

{ 

this.gvSql.DataSource = test.getPagesData(Convert.ToInt32(AspNetPager1.PageSize), AspNetPager1.CurrentPageIndex - 1); 

this.gvSql.DataBind(); 

} 

protected void AspNetPager1_PageChanged(object sender, EventArgs e) 

{ 

Bind(); 

} 

}



你可能感兴趣的:(asp.net)