C# .NET封装:多数据库访问(Access、SQL Server、Oracle)
在C#编程中,数据库访问是至关重要的部分,特别是当需要处理不同类型的数据库(如Microsoft Access、SQL Server和Oracle)时。本文档介绍了一个名为`DataBaseLayer`的万能数据库访问封装类,它旨在简化对这些不同数据库的连接和操作。该类主要关注以下几个方面: 1. **配置管理**: 类中使用`ConfigurationSettings.AppSettings`来读取`web.config`中的数据库连接字符串和数据类型设置。这允许开发者在代码中灵活地存储和更改数据库连接配置,提高了代码的可维护性和可扩展性。 2. **属性封装**: `ConnectionString`属性用于存储数据库连接字符串,并提供了getter和setter方法。这样,开发人员可以在构造函数中设置初始连接,也可以通过`set`方法在运行时动态修改连接。 3. **构造函数**: 类提供两个构造函数,一个接受硬编码的连接字符串和数据类型,另一个则从`web.config`中自动获取这些设置。这种设计确保了代码可以适应不同的部署场景,无论是预设的配置还是环境变量驱动的连接。 4. **数据类型支持**: 类创建时需要传入`dataType`参数,可能是"ACCESS", "SQLServer", 或 "Oracle",以确定使用哪种特定的数据库访问技术。例如,`OleDbConnection`用于Access,`SqlConnection`用于SQL Server,而`OracleConnection`用于Oracle数据库。 5. **方法抽象**: 虽然文档没有提供具体的方法实现,但可以推测`DataBaseLayer`类可能包含用于执行SQL查询、插入、更新和删除操作的方法,如`ExecuteNonQuery()`, `ExecuteScalar()`, `ExecuteReader()`等,这些方法会根据`DbType`属性选择合适的数据库操作方法(例如ADO.NET的`SqlDataAdapter`, `SqlCommand`, 或相应的Oracle或Access对象)。 6. **总结与用途**: `DataBaseLayer`封装类的作用在于提供一个统一的接口,隐藏底层数据库的具体细节,使得在C#项目中无论使用哪种类型的数据库,代码的编写和维护都可以保持一致性和模块化。这对于大型项目,特别是那些需要频繁切换数据库的项目来说,具有显著的优势。 通过使用这个封装类,开发者能够更加高效地进行数据库操作,并且降低了代码的耦合度,提高了代码的可读性和可维护性。在实际应用中,开发者只需要关心业务逻辑,而无需过多关注数据库连接和操作的具体实现细节。
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.OracleClient;
using System.Configuration;
using System.Reflection;
namespace SystemFramework.DAL
{
/**//// <summary>
/// All rights reserved
/// 数据访问基础类
/// 用户可以修改满足自己项目的需要。
/// </summary>
public class DataBaseLayer
{
//数据库连接字符串(web.config来配置)
//<add key="ConnectionString" value="server=127.0.0.1;database=DATABASE;uid=sa;pwd=" />
private string connectionString;
public string ConntionString
{
get
{
return connectionString ;
}
set
{
}
}
public DataBaseLayer(string strConnect,string dataType)
{
this.ConntionString = strConnect;
this.DbType = dataType;
}
public DataBaseLayer()
{
this.connectionString = ConfigurationSettings.AppSettings["ConnectionString"] ;
this.dbType = ConfigurationSettings.AppSettings["DataType"] ;
//this.connectionString = "data source=192.168.1.43;user id=sa;pwd=sa;database=temphrdb";
//this.dbType = "SqlServer";
}
/**//// <summary>
/// 数据库类型
/// </summary>
private string dbType;
public string DbType
{
get
{
if ( dbType == string.Empty || dbType == null )
{
剩余39页未读,继续阅读
- 粉丝: 2
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全