C#连接Access数据库操作类封装与配置详解

Aria
Aria
发布时间:2026-10-14| 6人浏览过
原创

在使用C#进行ASP.NET项目开发时,连接和操作本地Access数据库是常见需求。通过封装统一的数据库访问类并结合配置文件管理连接参数,可以有效降低代码耦合度并提升开发效率。

结果或目标

构建一个可复用的C#类库,用于处理Access数据库的连接、执行SQL语句(插入、更新、删除)、查询数据(返回DataReader或DataSet)以及统计查询结果行数。所有核心配置信息外部化,便于维护。

准备条件

  1. 环境要求:具备C#编译环境(如Visual Studio)及.NET Framework支持。
  2. 依赖组件:需引用 System.Data.OleDb 命名空间以使用OLE DB提供程序访问Access文件。
  3. 数据库文件:准备一个有效的 .mdb 或 .accdb 格式的Access数据库文件。

真实操作顺序

第1步:配置连接字符串

在项目的 web.config 文件中配置数据库连接参数。将物理路径替换为实际部署路径,并根据需要设置密码。

打开 web.config,在 <configuration> 节点下添加 <connectionStrings>:

<configuration>
<connectionStrings>
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\keleyi\\App_Data\\db.mdb;Jet OLEDB:Database PassWord=keleyi.com" providerName="System.Data.OleDb" />
</connectionStrings>
</configuration>
  • 关键参数:Provider指定为Access驱动;Data Source指向数据库文件绝对路径;providerName固定为 System.Data.OleDb。

第2步:创建数据库操作类

新建一个C#类,命名为 ConnDbForAcccess(注:原类名拼写保留习惯)。该类继承自基础功能,主要包含两个构造函数和多个核心操作方法。

using System;
using System.Data;
using System.Data.OleDb;
using System.Web;
using System.Configuration;

namespace Com.LXJ.Database
{
    public class ConnDbForAcccess
    {
        private string connectionString;
        protected OleDbConnection Connection;

        // 默认构造函数,从Config读取
        public ConnDbForAcccess()
        {
            connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
            Connection = new OleDbConnection(connectionString);
        }

        // 自定义连接字符串构造函数
        public ConnDbForAcccess(string newConnectionString)
        {
            connectionString = newConnectionString;
            Connection = new OleDbConnection(connectionString);
        }

        // 其他方法见下文...
    }
}

第3步:实现无返回值SQL执行(事务支持)

对于插入、更新、删除等操作,使用 ExeSQL 方法。该方法内置了事务处理机制,确保数据一致性。

  • 入口:调用 public bool ExeSQL(string strSQL)。
  • 动作:打开连接 → 开启事务 → 执行命令 → 提交/回滚 → 关闭连接。
  • 完成状态:返回布尔值指示操作是否成功。
public bool ExeSQL(string strSQL)
{
    bool resultState = false;
    try
    {
        Connection.Open();
        OleDbTransaction myTrans = Connection.BeginTransaction();
        OleDbCommand command = new OleDbCommand(strSQL, Connection, myTrans);
        command.ExecuteNonQuery();
        myTrans.Commit();
        resultState = true;
    }
    catch
    {
        if (Connection.State == ConnectionState.Open)
        {
            Connection.Rollback();
        }
        resultState = false;
    }
    finally
    {
        if (Connection.State == ConnectionState.Open)
        {
            Connection.Close();
        }
    }
    return resultState;
}

第4步:实现数据查询与集返回

针对不同的查询场景,提供两种数据返回方式:

  1. 返回DataSet:
    方法:public DataSet ReturnDataSet(string strSQL)
    用途:适合需要将数据绑定到GridView等控件的场景,内部使用OleDbDataAdapter自动填充数据集。
  2. 返回DataReader:
    方法:private OleDbDataReader ReturnDataReader(string strSQL)
    用途:仅作为内部辅助方法,返回只读向前游标的读取器,适用于高性能流式读取。

第5步:实现查询结果计数

若只需知道查询结果的行数,可使用 ReturnSqlResultCount 方法,避免加载完整数据集合节省内存。

public int ReturnSqlResultCount(string strSQL)
{
    int sqlResultCount = 0;
    try
    {
        Connection.Open();
        OleDbCommand command = new OleDbCommand(strSQL, Connection);
        OleDbDataReader dataReader = command.ExecuteReader();
        while (dataReader.Read())
        {
            sqlResultCount++;
        }
        dataReader.Close();
    }
    catch
    {
        sqlResultCount = 0;
    }
    finally
    {
        if (Connection.State == ConnectionState.Open)
        {
            Connection.Close();
        }
    }
    return sqlResultCount;
}

完成判断

当能够通过实例化 ConnDbForAcccess 类,并成功调用 ExeSQL 写入数据或通过 ReturnDataSet 读取数据且无异常抛出时,表明配置正确且类库可用。建议在生产环境中对数据库文件路径进行相对路径或服务器变量处理,以避免硬编码带来的迁移困难。

简要总结

以上是将C#连接Access数据库的常见操作封装为通用类的详细内容,主要涉及连接配置、事务控制及多种数据读取方式的实现。更多关于C#数据库访问优化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。