`
niunan
  • 浏览: 721957 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

自己封装的Access数据库的操作类(AccessHelper)

    博客分类:
  • .NET
阅读更多

加入了一个分页的方法,有空把其他的MYSQLHelper和SQLiteHelper也加上那个分页的方法,嘿嘿。

 

using System;
using System.Data;
using System.Data.OleDb;


/// <summary>
///Access数据库操作类
///创建时间:2010年4月16日17时9分
///作者:牛腩
///QQ: 164423073
/// </summary>
public class AccessHelper
{
    private OleDbConnection conn = null;
    private OleDbCommand cmd = null;
    private OleDbDataReader sdr = null;


    public AccessHelper()
    {
        //  string connStr = WebConfigurationManager.ConnectionStrings["connStr"].ToString();
        string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db.mdb";
        conn = new OleDbConnection(connStr);
    }


    /// <summary>创建Command对象
    /// 
    /// </summary>
    /// <param name="sql">SQL语句</param>
    public void CreateCommand(string sql)
    {
        conn.Open();
        cmd = new OleDbCommand(sql, conn);
    }


    /// <summary>添加参数
    /// 
    /// </summary>
    /// <param name="paramName">参数名称</param>
    /// <param name="value">值</param>
    public void AddParameter(string paramName, object value)
    {
        cmd.Parameters.Add(new OleDbParameter(paramName, value));


    }


    /// <summary>执行不带参数的增删改SQL语句
    ///  
    /// </summary>
    /// <param name="cmdText">增删改SQL语句</param>
    /// <param name="ct">命令类型</param>
    /// <returns></returns>
    public bool ExecuteNonQuery()
    {
        int res;
        try
        {
            res = cmd.ExecuteNonQuery();
            if (res > 0)
            {
                return true;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        return false;
    }


    /// <summary>执行查询SQL语句
    ///  
    /// </summary>
    /// <param name="cmdText">查询SQL语句</param>
    /// <returns></returns>
    public DataTable ExecuteQuery()
    {
        DataTable dt = new DataTable();
        using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
        {
            dt.Load(sdr);
        }
        return dt;
    }


    /// <summary>分页
    /// 
    /// </summary>
    /// <param name="tblName">表名</param>
    /// <param name="fldName">字段名</param>
    /// <param name="OrderfldName">排序字段名</param>
    /// <param name="OrderType">排序方式:asc或者desc</param>
    /// <param name="strWhere">条件,不用加where</param>
    /// <param name="PageSize">页大小</param>
    /// <param name="PageIndex">页索引</param>
    /// <returns></returns>
    public DataTable FengYe(string tblName, string fldName, string OrderfldName, string OrderType, string strWhere, int PageSize, int PageIndex)
    {
        DataTable dt = new DataTable();
        string strSQL = ""; // 主语句 
        string strTmp = ""; // 临时变量 
        string strOrder = ""; // 排序类型


        if (OrderType == "desc")
        {
            // 降序
            strTmp = "<(select min";
            strOrder = " order by " + OrderfldName + " desc";
        }
        else
        {
            // 升序
            strTmp = ">(select max";
            strOrder = " order by " + OrderfldName + " asc";
        }


        #region 第一页
        if (PageIndex == 1)
        {
            strTmp = string.IsNullOrEmpty(strWhere) ? "" : " where " + strWhere;
            strSQL = "select top " + PageSize + " " + fldName + " from " + tblName + strTmp + " " + strOrder;
            CreateCommand(strSQL);
            dt = ExecuteQuery();
            return dt;
        }
        #endregion


        #region 不是第一页
        if (string.IsNullOrEmpty(strWhere))
        {
            // 条件为空
            strSQL = string.Format("select top {0} {1} from {2} where {3}{4}({5}) from (select top {6} {7} from {8} {9}) as tblTmp) {10}", PageSize, fldName, tblName, OrderfldName, strTmp, OrderfldName, (PageIndex - 1) * PageSize, OrderfldName, tblName, strOrder, strOrder);
            CreateCommand(strSQL);
            dt = ExecuteQuery();
        }
        else
        {
            // 条件不为空
            strSQL =string.Format( "select top {0} {1} from {2} where  {3}{4}({5}) from (select top {6} {7} from {8} where {9} {10}) as tblTmp) and {11} {12}",PageSize,fldName,tblName,OrderfldName,strTmp,OrderfldName,(PageIndex-1)*PageSize,OrderfldName,tblName,strWhere,strOrder,strWhere,strOrder);
            CreateCommand(strSQL);
            dt = ExecuteQuery();
        }
        #endregion


        return dt;
    }


    /// <summary>返回查询SQL语句查询出的结果的第一行第一列的值
    /// 
    /// </summary>
    /// <returns></returns>
    public string ExecuteScalar()
    {
        string res = "";
        try
        {
            object obj = cmd.ExecuteScalar();
            if (obj != null)
            {
                res = obj.ToString();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        return res;
    }


}
 自己做的测试项目下载:http://niunan.net/download/accesshelper.7z
分享到:
评论

相关推荐

    C#数据库操作类AccessHelper实例

    通常,一个完整的数据库操作类还会包含其他方法,例如`ExecuteScalar`用于获取单个值,`ExecuteReader`用于返回数据读取器进行遍历,以及事务处理和批处理操作等。AccessHelper可能也包含类似的方法来支持不同的...

    C# ACCESS 数据库操作类

    总结来说,"C# ACCESS 数据库操作类"是一个用于简化C#程序中与Access数据库交互的自定义类,它通过封装ADO.NET组件提供了高效且易于使用的数据库操作接口。"AccessHelper.cs"文件包含了实现这些功能的源代码,是理解...

    asp.net(C#)access数据库ado.net操作类AccessHelper

    总结,`AccessHelper`类是ASP.NET(C#)应用程序中对Access数据库操作的一个实用工具类,它封装了ADO.NET的基本操作,如连接、查询、参数化SQL以及事务处理,使得数据库操作更加简洁、安全。在实际项目中,可以根据...

    access数据库操作类

    `Access数据库操作类`主要是为了简化这些交互过程,封装了连接、查询、更新等基本操作。下面将详细介绍这类操作的核心知识点。 1. **连接数据库** 使用ADO.NET中的`System.Data.OleDb`命名空间下的`...

    C# AccessHelper

    **C# AccessHelper** 是一个专门针对...总的来说,C# AccessHelper是一个强大且灵活的工具,它为处理Access数据库提供了一种简洁、高效的方式,尤其适合对数据库操作要求不高但又不想过度依赖数据库服务器的项目。

    C# DBHealper类源代码(含SQLHelper,AccessHelper)

    DBHealper类是C#中一个实用的工具,它封装了对数据库操作的基本功能,使得开发者能够更便捷、高效地进行数据访问。本项目包含两个助手类:SQLHelper和AccessHelper,分别针对SQL Server数据库和Microsoft Access...

    数据库操作类

    这里我们讨论的"数据库操作类"主要包括三个关键文件:`SqlHelper.cs`、`AccessHelper.cs`和`ConfigHelper.cs`。这三个类在C#编程中通常用于协助开发者高效、安全地与各种数据库进行交互。 1. **SqlHelper.cs**: `...

    AccessHelper

    AccessHelper 是一个专为VB.NET设计的通用数据访问类库,它简化...总的来说,AccessHelper 是VB.NET开发中非常实用的数据访问工具,通过抽象和封装数据库操作,让开发者更专注于业务逻辑,而不是底层的数据库交互细节。

    Sql、Oracle、Access Helper类

    综上所述,Sql、Oracle、Access Helper类是开发人员便捷操作三种数据库的实用工具,它们封装了常见的数据库操作,降低了开发复杂度,提高了代码效率。在实际应用中,可以根据项目需求进行适当的修改和扩展,以满足...

    辅助进行Access 数据库开发的类源代码VB.net2008

    "辅助进行Access数据库开发的类源代码VB.net2008"就是一个这样的资源,它提供了对Access数据库操作的封装,帮助开发者更便捷地执行常见的数据库任务。 Access MDB是Microsoft Access的文件格式,用于存储和管理数据...

    c#解决mysql乱码问题的解决及mysql数据库操作的封装

    以下是一个简单的C#数据库操作类示例: ```csharp public class MySQLHelper { private MySqlConnection connection; private string connectionString; public MySQLHelper(string cs) { this....

    C#操作Oracle帮助类已经封装 本地无需安装oracle 内有说明文档

    在IT行业中,数据库管理和操作是不可或缺的部分,尤其是像Oracle这样的大型企业级数据库系统。...结合“使用说明.txt”,开发者可以轻松地将这个OracleHelper类整合进自己的项目中,实现高效、稳定的数据库操作。

    自己寫的AccessDBHelper DLL文件

    AccessDBHelper是一个自定义的C#库,专为与Microsoft Access数据库(通常具有....通过封装OleDbConnection和OleDbCommand对象,它简化了与.MDB文件的交互,使得开发人员能够更加专注于业务逻辑,而非数据库操作细节。

    各种数据库的公用类,跨数多种据库的底层类库

    标题中的“各种数据库的公用类,跨数多种据库的底层类库”指的是这个压缩包包含了一组通用的数据库操作类,这些类设计的目标是能够跨多种不同的数据库系统工作,如Oracle、SQL Server和Access等。这样的设计可以极大...

    C#DBHelp访问数据库类

    在.NET开发环境中,C#是一种常用的编程语言,用于构建各种应用程序。...通过了解这个类的设计和实现,我们可以学习到如何在C#中高效地进行数据库操作,同时也可以借鉴其模式来创建自己的数据访问层。

    多数据库操作帮助类

    针对不同数据库,进行的操作方法封装。 满足基本操作条件,增加、删除、修改、查询、事务、存储过程。 目前支持的数据库有:MySql,SqlServer,Oracle,SQLite,Access 调用方法 需要先配置访问数据库连接,并在初始化...

    C# 操作 access 数据库的实例代码

    5. 工具类的创建:示例代码中还展示了如何创建一个工具类AccessHelper,用于封装数据库连接和操作的代码,以方便重用。工具类中包括了获取数据库连接的方法和执行非查询指令、查询指令的方法。 6. 资源管理:在操作...

    helper1017.zip

    总的来说,"helper1017.zip"压缩包提供了针对MySQL数据库的简单易用的接口,通过`MysqlHelper`类的封装和`Mysql.Data.DLL`库的支持,使得.NET开发者可以高效地进行数据库操作。在实际项目中,你可以根据需求进一步...

    c#(数据库管理程序)

    `AccessHelper`类很可能封装了这些数据库操作,通过修改其内的连接字符串,我们可以将应用程序连接到自己的SQL Server实例。 文件列表中的`access.sln`是Visual Studio解决方案文件,包含了项目的所有相关信息。...

    C:\Users\Administrator\Documents\weibo

    "AccessHelper"可能是一个自定义的C#类,用于封装与Access数据库的交互逻辑,简化开发过程。这样的类通常包含方法如`Insert()`(插入)、`Delete()`(删除)、`Update()`(更新)和`Select()`(查询)。这些方法内部...

Global site tag (gtag.js) - Google Analytics