65.9K
CodeProject 正在变化。 阅读更多。
Home

适用于 DotNet 2.0 的 DbHelper,使用 DbProviderFactory

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.50/5 (12投票s)

2008年2月23日

CPOL

2分钟阅读

viewsIcon

93812

downloadIcon

7396

DbHelper 包含使用 DbProviderFactory 功能操作数据的方法。

引言

本文档涵盖

         
       1. Overview of DbProviderFactory [in the Background section]
       2. DBHelper class to implement DbProviderFactory concepts 
       3. Pre-requisites for DBHelper class
       4. Overview of DBHelper class

此外,还包括以下源代码:

       1. DBHelper class
       2. EmployeeDL [DataLayer class] with the implementation

背景

随着 DotNet 的发展,ADO.Net 一直通过尝试不同的方法来改进。为了与不同的数据库通信,ADO.Net 提供了一组可在“System.Data”命名空间下轻松访问的众多数据提供程序。

For example

       SQL Server      	- System.Data.SqlClient
       Oracle		- System.Data.OracleClient
       OleDb		- System.Data. OleDb
       Odbc		- System.Data. Odbc
       etc…

在实际场景中,可能会更改数据库。目前,开发人员通常根据特定的数据提供程序(例如 SQL)编写代码。但是,如果需要将数据库更改为 Oracle,则必须重写代码以支持 Oracle 数据提供程序,这非常繁琐。为了克服这种情况,ADO.Net 通过在“System.Data”下提供一个新的命名空间“System.Data.Common”来提供通用的解决方案。

所有数据提供程序的通用版本都可在该命名空间下找到,即:

       •	DbCommand 
       •	DbCommandBuilder 
       •	DbConnection 
       •	DbDataAdapter 
       •	DbDataReader 
       •	DbException 
       •	DbParameter 
       •	DbTransaction

使用代码

DBHelper 类

DBHelper 类是使用 DbProvider Factory 概念创建的,旨在减少编码工作量。该类提供了一组用于

	
       •	ExecuteNonQuery 
       •	ExecuteScalar
       •	ExecuteReader
       •	DataAdapter

先决条件

Dot Net 2.0

设置

Web.config 文件应在 appSettings 部分包含以下键。

       // Include the lines in the Web.config file with the required details with opening and closing tags
       add key="DATA.PROVIDER" value="System.Data.SqlClient"
       add key="DATA.CONNECTIONSTRING" value="data source=ServerName;initial catalog =DatabaseName; user id =UserId; pwd =Password;"

       DATA.PROVIDER		- To define the Provider.
       DATA.CONNECTIONSTRING	- To define the Connection string.

DBHelper 类概述

以下是 DBHelper 类中可用的一些方法。这有助于了解 DBHelper 类及其方法的工作原理。

构造函数


DBHelper()

创建 DBHelper 对象时,将根据 Web.config 文件中指定的数据提供程序创建 DbProviderFactory 对象。

       // Creating DbProviderFactory object based on the provider given in Web.config 
       DbProviderFactory oFactory = DbProviderFactories.GetFactory(PROVIDER);

析构函数


~DBHelper()

DbProviderFactory 对象将被释放。

       // Disposing DbProviderFactory object
       oFactory = null;

连接相关方法


EstablishFactoryConnection()

DbConnection 对象基于 Web.config 文件中指定的连接字符串和 DbProviderFactory 对象创建。

       // Creating DbConnection object based on the connection string given in Web.config 
       DbConnection oConnection = oFactory.CreateConnection();

CloseFactoryConnection()

连接关闭,DbConnection 对象被释放。

       // Closing the connection and disposing the DbConnection object
       oConnection.Close();
       oConnection.Dispose();

参数相关方法

已创建一种结构来定义参数详细信息,例如:

       •	ParamName
       •	ParamValue
       •	ParamDirection

该结构提供了两个构造函数:

       // Constructors for the structure
       public Parameters(string Name, object Value, ParameterDirection Direction)
       public Parameters(string Name, object Value)

事务相关方法

已创建一种枚举器来定义 TransactionType,它可以是:

       •	Open	- Begin Transaction 
       •	Commit	- Commit Transaction
       •	Rollback - Rollback Transaction

TransactionHandler 方法根据定义的 Transaction 类型处理事务。

       // Method to handle Transaction
       public void TransactionHandler(TransactionType veTransactionType)

执行方法

提供一组重载方法,用于:

       // Overloaded methods avaliable for
       •	ExecuteScalar
       •	ExecuteReader
       •	ExecuteNonQuery
       •	DataAdapter

对于上述方法,还有许多重载方法,目前未在此处提及。您可以在随本文档附带的示例类 [EmployeeDL] 中获得这些方法及其实现的更好概述。

© . All rights reserved.