Access结合aspnetpager分页
Access结合AspNetPager实现高效简洁分页功能
分页存储过程查询参数类
using System.Collections.Generic;
using System.Text;
namespace King.Utility
{
/// <summary>
/// 分页存储过程查询参数类
/// </summary>
public class QueryParam
{
#region "Private Variables"
private string _TableName;
private string _ReturnFields;
private string _Where;
private string _Orderfld;
private int _OrderType = 1;
private int _PageIndex = 1;
private int _PageSize = int.MaxValue;
#endregion
#region "Public Variables"
/// <summary>
/// 表名
/// </summary>
public string TableName
{
get
{
return _TableName;
}
set
{
_TableName = value;
}
}
/// <summary>
/// 返回字段
/// </summary>
public string ReturnFields
{
get
{
return _ReturnFields;
}
set
{
_ReturnFields = value;
}
}
/// <summary>
/// 查询条件 需带Where
/// </summary>
public string Where
{
get
{
return _Where;
}
set
{
_Where = value;
}
}
/// <summary>
/// 排序字段
/// </summary>
public string Orderfld
{
get
{
return _Orderfld;
}
set
{
_Orderfld = value;
}
}
/// <summary>
/// 排序类型 1:降序 其它为升序
/// </summary>
public int OrderType
{
get
{
return _OrderType;
}
set
{
_OrderType = value;
}
}
/// <summary>
/// 当前页码
/// </summary>
public int PageIndex
{
get
{
return _PageIndex;
}
set
{
_PageIndex = value;
}
}
/// <summary>
/// 每页记录数
/// </summary>
public int PageSize
{
get
{
return _PageSize;
}
set
{
_PageSize = value;
}
}
#endregion
}
}
OleDbHepler 数据库操作类
using System.Data;
using System.Configuration;
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;
using System.Data.OleDb;
using System.Text;
/// <summary>
/// OleDbHepler 的摘要说明
/// </summary>
public class OleDbHepler
{
#region "数据库设置"
/// <summary>
/// 获取数据库类型
/// </summary>
public static string GetDBType
{
get
{
return ConfigurationManager.AppSettings["DBType"];
}
}
/// <summary>
/// 获取数据库连接字符串
/// </summary>
public static string GetConnString
{
get
{
return ConfigurationManager.AppSettings[GetDBType];
}
}
#endregion
/// <summary>
/// 数据库连接字符串
/// </summary>
private string ConnString = string.Empty;
public OleDbHepler()
{
ConnString = string.Format("Provider=Microsoft.Jet.OleDb.4.0;Data Source={0}{1};Persist Security Info=True;", AppDomain.CurrentDomain.BaseDirectory, GetConnString);
}
/// <summary>
/// 获取数据连接
/// </summary>
/// <returns></returns>
public OleDbConnection GetSqlConnection()
{
try
{
return new OleDbConnection(ConnString);
}
catch
{
throw new Exception("没有提供数据庫连接字符串Access!");
}
}
/// <summary>
/// 公共查询数据函数Access版
/// </summary>
/// <param name="pp">查询字符串</param>
/// <param name="RecordCount">返回记录总数</param>
/// <returns>返回记录集DataSet</returns>
public DataSet GetDataSetList(QueryParam pp, out int RecordCount)
{
RecordCount = 0;
DataSet ds = new DataSet();
using (OleDbConnection Conn = GetSqlConnection())
{
StringBuilder sb = new StringBuilder();
int TotalRecordForPageIndex = pp.PageIndex * pp.PageSize;
string OrderBy;
string CutOrderBy;
if (pp.OrderType == 1)
{
OrderBy = " Order by " + pp.Orderfld + " desc ";
CutOrderBy = " Order by " + pp.Orderfld + " asc ";
}
else
{
OrderBy = " Order by " + pp.Orderfld + " asc ";
CutOrderBy = " Order by " + pp.Orderfld + " desc ";
}
sb.AppendFormat("SELECT * FROM (SELECT TOP {0} * FROM (SELECT TOP {1} {2} FROM {3} {4} {5}) TB2 {6}) TB3 {5} ", pp.PageSize, TotalRecordForPageIndex, pp.ReturnFields, pp.TableName, pp.Where, OrderBy, CutOrderBy);
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter dr = new OleDbDataAdapter();
cmd.Connection = Conn;
cmd.CommandText = sb.ToString();
Conn.Open();
dr.SelectCommand = cmd;
dr.Fill(ds, pp.TableName);
dr.Dispose();
cmd.Parameters.Clear();
// 取记录总数
cmd.CommandText = string.Format("SELECT Count(1) From {0} {1}", pp.TableName, pp.Where);
RecordCount = Convert.ToInt32(cmd.ExecuteScalar());
dr.Dispose();
cmd.Dispose();
Conn.Dispose();
Conn.Close();
}
return ds;
}
}
前台数据显示,分页控件采用AspNetPager,具体如何使用该控件大家上网查,资料很多。
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" Width="98%">
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<div>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged">
</webdiyer:AspNetPager>
</div>
</form>
</body>
后台实现数据绑定
{
if (!Page.IsPostBack)
{
BindData();
}
}
private void BindData()
{
QueryParam qp = new QueryParam();
qp.TableName = "t_users";
qp.Orderfld = "UserID";
qp.ReturnFields = "*";
qp.Where = SearchTerms;
qp.PageIndex = AspNetPager1.CurrentPageIndex;
qp.PageSize = AspNetPager1.PageSize;
int RecordCount = 0;
DataSet ds = new OleDbHepler().GetDataSetList(qp, out RecordCount);
GridView1.DataSource = ds;
GridView1.DataBind();
this.AspNetPager1.RecordCount = RecordCount;
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
BindData();
}
/// <summary>
/// 查询条件
/// </summary>
private string SearchTerms
{
get
{
if (ViewState["SearchTerms"] == null)
ViewState["SearchTerms"] = " Where 1 = 1";
return (string)ViewState["SearchTerms"];
}
set { ViewState["SearchTerms"] = value; }
}
一切搞定。
转载于:https://www.cnblogs.com/nosnowwolf/archive/2006/06/16/427863.html
Access结合aspnetpager分页相关推荐
- Repeater使用 AspNetPager分页控件
一.AspNetPager分页控件 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net ...
- DataGrid基于Access的快速分页法
DataGrid基于Access的快速分页法 撰文/ 黎波 DataGrid是一个功能非常强大的ASP.NET Web服务器端控件,它除了能够方便地按各种方式格式化显示表格中的数据,还可以对表格中的数 ...
- access下的分页方案(仿sql存储过程)
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.D ...
- GridView 利用AspNetPager 分页时的自动编号
GridView 利用AspNetPager 分页时的自动编号 <%# (this.WillisPager1.CurrentPageIndex-1) * this.WillisPager1.Pa ...
- Access数据库 实现分页查询
Access数据库 实现分页查询 目录 说明 项目的结构 SQL语句 Servlet:page.java 显示页面query.jsp 访问页面hello.jsp 总结 目录 说明 项目环境:Eclip ...
- DataGrid连接Access的快速分页法(2)——SQL语句的选用(升序与降序)
作者:黎波 一.相关概念 在 ACCESS 数据库中,一个表的主键(PRIMARY KEY,又称主索引)上必然建立了唯一索引(UNIQUE INDEX),因此主键字段的值是不会重复的.并且索 ...
- DataGrid连接Access的快速分页法(1)——需求与现状
作者:黎波 一.需求分析 DataGrid是一个功能强大的ASP.NET Web服务器端控件,它除了能够按各种方式格式化显示数据,还可以对数据进行动态的排序.编辑和分页.大大减轻了广大Web ...
- AspNetPager分页控件
http://files.cnblogs.com/zhangweiguo3984/AspNetPager433.rar 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以 ...
- aspnetpager分页,不使用存储过程
一.前台显示界面代码Default.aspx(注意,代码运行环境是VS.2005) <%@ Page Language="C#" AutoEventWireup=" ...
最新文章
- SQL操作的组成部分-事务控制
- Docker 健康检查功能
- Propel项目改为基于TensorFlow.js
- 荧光皮肤有哪些_价格适中又显白的口红有哪些?MAC占大头,KIKO卡拉泡泡超平价...
- express开发实例
- linux搭建Django环境,Linux (ubuntu 12.04)下搭建Python Django环境
- 【C++基础】时间类型详解(转)
- Segment-based Disparity Refinement with Occlusion Handling for Stereo Matching翻译和理解
- mysql查询id为5的数据类型_MySql学习05---数据类型
- Java截取视频文件缩略图
- C语言写计算ln()计算式,NTC热敏电阻温度计算方法,Steinhart-Hart方程和B值法(转)...
- OTA,一个万亿市场的风口
- 风云唐太宗(上部)精要
- c语言-查找字符串子串(类似strstr()函数)
- GNU C++ 智能指针6-- 解析_Sp_counted_inplace类
- IOS安卓友盟消息推送详细配置以及证书更新
- 互斥事件的概念和公式_高中数学典型例题分析与解答:互斥事件
- 计算机信息检索 服务方式,计算机信息检索.ppt
- 常用db与倍数的关系
- SVGA 礼物动画设计相关