asp.net 分页sql语句(结合aspnetpager)

 更新时间:2009年01月30日 18:44:59   作者:  
一直用的是存储过程分页,小项目一般不写存储过程,就需要直接写分页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();
}
}

相关文章

  • Entity Framework管理一对一实体关系

    Entity Framework管理一对一实体关系

    本文详细讲解了Entity Framework管理一对一实体关系的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • .net core 使用阿里云分布式日志的配置方法

    .net core 使用阿里云分布式日志的配置方法

    本文给大家分享.net core 使用阿里云分布式日志的实现代码,简单查询阿里云日志的工具使用,通过实例代码介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-06-06
  • asp.net实现获取客户端详细信息

    asp.net实现获取客户端详细信息

    这篇文章主要介绍了asp.net实现获取客户端详细信息,包括客户端浏览器及主机信息,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • asp.net(c#)文件下载实现代码

    asp.net(c#)文件下载实现代码

    本文通过一个实例向大家介绍用C#进行Internet通讯编程的一些基本知识。我们知道.Net类包含了请求/响应层、应用协议层、传输层等层次。
    2009-11-11
  • ASP.NET编程中经常用到的27个函数集

    ASP.NET编程中经常用到的27个函数集

    asp.net 整理的27个函数集,大家可以参考下
    2008-08-08
  • 在运行时编辑代码的 .NET 热重载的操作方法

    在运行时编辑代码的 .NET 热重载的操作方法

    今天通过本文给大家分享 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具),介绍什么是 .NET 热重载,如何使用这个特征,感兴趣的朋友跟随小编一起学习下吧
    2021-07-07
  • asp.net AutoCompleteExtender的一个简单例子代码

    asp.net AutoCompleteExtender的一个简单例子代码

    asp.net AutoCompleteExtender的一个简单例子代码
    2009-12-12
  • .net c# gif动画如何添加图片水印实现思路及代码

    .net c# gif动画如何添加图片水印实现思路及代码

    本文将详细介绍下c#实现gif动画添加图片水印,思路很清晰,感兴趣的你可以参考下哈,希望可以帮助到你
    2013-03-03
  • ASP.NET Core2读写InfluxDB时序数据库的方法教程

    ASP.NET Core2读写InfluxDB时序数据库的方法教程

    Influxdb是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖,下面这篇文章主要给大家介绍了关于ASP.NET Core2读写InfluxDB时序数据库的相关资料,需要的朋友可以参考下
    2018-11-11
  • asp.net 预防SQL注入攻击之我见

    asp.net 预防SQL注入攻击之我见

    说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论。当不知道注入原理的时候会觉得很神奇,怎么就被注入了呢?会觉得很难预防。但是当知道了注入原理之后预防不就是很简单的事情了吗?
    2009-11-11

最新评论