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=" ...
最新文章
- js innerHTML 改变div内容的方法
- c语言预处理指令之 ##
- 大叔手记(21):汤姆大叔博客园开博100天总结
- java中string和stringbuffer
- Jenkins远程调度Shell命令
- mysql开发平台_搭建mysql编程平台
- 小日历实验目的Android,Android实验报告22个.doc
- Normal Equation----machine learning
- 算法学习笔记:连通图详解
- java电影购票系统_基于Java的电影院购票系统
- 2021年特种设备气瓶充装(全国特种设备-P气瓶充装模拟考试题库一)安考星
- 1500个工作计划总结PPT模板免费下载网址
- Air202学习 一 (程序下载流程----GPIO简单控制)
- ios微信小程序下拉刷新怎么配_微信小程序之上拉加载与下拉刷新
- JWT 帮助类 JWTHelper
- 见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究
- 动点四边形周长最短_中考数学之四边形周长最小值
- 怎么在12306上选择上中下卧铺
- HDF5 header version 1.10.4与HDF5 library 1.10.5冲突解决办法记录
- 在Java程序员能够从事哪些岗位