2 约定
(1)本文中谈及的数据库仅限于关系数据库。数据库类型指不同的关系数据库系统,如Oracle,SQL Server,Sybase等等。
(2)数据库对象指ADO.NET中访问数据库的对象:Connection对象,Command对象,Adapter对象、Parameter对象。
3 应用程序的一般结构
通常,数据库相关的应用程序应该具有图1所示的结构。至于为什么,就不用多说了。从图中可以看到数据库访问层所处的位置,及其应该具有的功能。
图1 应用程序一般结构
4 适应不同类型的数据库
如第1节所述,在ADO.NET中,使用不同类型的数据库,主要就是这些数据库对象的变化:Connection,Command,Adapter,Parameter。在程序中我们需要根据不同的数据库创建合适的对象。
通常的简单做法是使用条件判断,是何种类型的数据库,创建相应的数据库对象,代码如下:
[示例代码1] 简单,但缺乏弹性和复用性的方法
/// <summary>
/// 数据库类型。
/// </summary>
public enum DbType
{
SqlServer,
Oracle,
OleDb,
}
class DbObjectFactory
{
/// <summary>
/// Connection 对象的创建。
/// </summary>
/// <param name="dbType">数据库类型。</param>
/// <returns>Connection 对象。</returns>
public static IDbConnection CreateConnection(DbType dbType)
{
switch(dbType)
{
case DbType.SqlServer:
return new SqlConnection();
case DbType.Oracle:
return new OracleConnection();