用C#实现的数据库抽象工厂(二)
以下3个类分别是Factory针对SqlServer专用连接、OleDb连接和Odbc连接时的具体实现:
(3)SqlFactory.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DbService
{
///
/// 针对SqlServer专用连接的工厂
///
public class SqlFactory : AbstractDbFactory
{
///
/// 构造函数
///
public SqlFactory()
{
}
///
/// 建立默认Connection对象
///
///Connection对象
public IDbConnection CreateConnection()
{
return new SqlConnection();
}
///
/// 根据连接字符串建立Connection对象
///
/// 连接字符串
///Connection对象
public IDbConnection CreateConnection(string strConn)
{
return new SqlConnection(strConn);
}
///
/// 建立Command对象
///
///Command对象
public IDbCommand CreateCommand()
{
return new SqlCommand();
}
///
/// 建立DataAdapter对象
///
///DataAdapter对象
public IDbDataAdapter CreateDataAdapter()
{
return new SqlDataAdapter();
}
///
/// 根据Connection建立Transaction
///
/// Connection对象
///Transaction对象
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
{
return myDbConnection.BeginTransaction();
}
///
/// 根据Command建立DataReader
///
/// Command对象
///DataReader对象
public IDataReader CreateDataReader(IDbCommand myDbCommand)
{
return myDbCommand.ExecuteReader();
}
///
/// 获得连接字符串
///
///连接字符串
public string GetConnectionString()
{
string strServer = ConfigurationSettings.AppSettings["SqlServerServer"];
string strDatabase = ConfigurationSettings.AppSettings["SqlServerDatabase"];
string strUid = ConfigurationSettings.AppSettings["SqlServerUid"];
string strPwd = ConfigurationSettings.AppSettings["SqlServerPwd"];
string strConnectionString = "Server = " + strServer + "; Database = " + strDatabase + "; Uid = " + strUid + "; Pwd = " + strPwd + ";";
return strConnectionString;
}
}
}
(4)OleDbFactory.cs
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
namespace DbService
{
///
/// 针对OleDb连接的工厂
///
public class OleDbFactory : AbstractDbFactory
{
///
/// 构造函数
///
public OleDbFactory()
{
}
///
/// 建立默认Connection对象
///
///Connection对象
public IDbConnection CreateConnection()
{
return new OleDbConnection();
}
///
/// 根据连接字符串建立Connection对象
///
/// 连接字符串
///Connection对象
public IDbConnection CreateConnection(string strConn)
{
return new OleDbConnection(strConn);
}
///
/// 建立Command对象
///
///Command对象
public IDbCommand CreateCommand()
{
return new OleDbCommand();
}
///
/// 建立DataAdapter对象
///
///DataAdapter对象
public IDbDataAdapter CreateDataAdapter()
{
return new OleDbDataAdapter();
}
///
/// 根据Connection建立Transaction
///
/// Connection对象
///Transaction对象
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
{
return myDbConnection.BeginTransaction();
}
///
/// 根据Command建立DataReader
///
/// Command对象
///DataReader对象
public IDataReader CreateDataReader(IDbCommand myDbCommand)
{
return myDbCommand.ExecuteReader();
}
///
/// 获得连接字符串
///
///连接字符串
public string GetConnectionString()
{
string strProvider = ConfigurationSettings.AppSettings["OleDbProvider"];
string strDataSource = ConfigurationSettings.AppSettings["OleDbDataSource"];
string strConnectionString = "Provider = " + strProvider + ";Data Source = " + strDataSource + ";";
return strConnectionString;
}
}
}
(5)OdbcFactory.cs
using System;
using System.Data;
using System.Data.Odbc;
using System.Configuration;
namespace DbService
{
///
/// 针对Odbc连接的工厂
///
public class OdbcFactory : AbstractDbFactory
{
///
/// 构造函数
///
public OdbcFactory()
{
}
///
/// 建立默认Connection对象
///
///Connection对象
public IDbConnection CreateConnection()
{
return new OdbcConnection();
}
///
/// 根据连接字符串建立Connection对象
///
/// 连接字符串
///Connection对象
public IDbConnection CreateConnection(string strConn)
{
return new OdbcConnection(strConn);
}
///
/// 建立Command对象
///
///Command对象
public IDbCommand CreateCommand()
{
return new OdbcCommand();
}
///
/// 建立DataAdapter对象
///
///DataAdapter对象
public IDbDataAdapter CreateDataAdapter()
{
return new OdbcDataAdapter();
}
///
/// 根据Connection建立Transaction
///
/// Connection对象
///Transaction对象
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
{
return myDbConnection.BeginTransaction();
}
///
/// 根据Command建立DataReader
///
/// Command对象
///DataReader对象
public IDataReader CreateDataReader(IDbCommand myDbCommand)
{
return myDbCommand.ExecuteReader();
}
///
/// 获得连接字符串
///
///
public string GetConnectionString()
{
string strDriver = ConfigurationSettings.AppSettings["OdbcDriver"];
string strDBQ = ConfigurationSettings.AppSettings["OdbcDBQ"];
string strConnectionString = "Driver={" + strDriver + "}; DBQ=" + strDBQ + ";";
return strConnectionString;
}
}
}
待续......
以下3个类分别是Factory针对SqlServer专用连接、OleDb连接和Odbc连接时的具体实现:
(3)SqlFactory.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DbService
{
///
/// 针对SqlServer专用连接的工厂
///
public class SqlFactory : AbstractDbFactory
{
///
/// 构造函数
///
public SqlFactory()
{
}
///
/// 建立默认Connection对象
///
///
public IDbConnection CreateConnection()
{
return new SqlConnection();
}
///
/// 根据连接字符串建立Connection对象
///
/// 连接字符串
///
public IDbConnection CreateConnection(string strConn)
{
return new SqlConnection(strConn);
}
///
/// 建立Command对象
///
///
public IDbCommand CreateCommand()
{
return new SqlCommand();
}
///
/// 建立DataAdapter对象
///
///
public IDbDataAdapter CreateDataAdapter()
{
return new SqlDataAdapter();
}
///
/// 根据Connection建立Transaction
///
/// Connection对象
///
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
{
return myDbConnection.BeginTransaction();
}
///
/// 根据Command建立DataReader
///
/// Command对象
///
public IDataReader CreateDataReader(IDbCommand myDbCommand)
{
return myDbCommand.ExecuteReader();
}
///
/// 获得连接字符串
///
///
public string GetConnectionString()
{
string strServer = ConfigurationSettings.AppSettings["SqlServerServer"];
string strDatabase = ConfigurationSettings.AppSettings["SqlServerDatabase"];
string strUid = ConfigurationSettings.AppSettings["SqlServerUid"];
string strPwd = ConfigurationSettings.AppSettings["SqlServerPwd"];
string strConnectionString = "Server = " + strServer + "; Database = " + strDatabase + "; Uid = " + strUid + "; Pwd = " + strPwd + ";";
return strConnectionString;
}
}
}
(4)OleDbFactory.cs
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
namespace DbService
{
///
/// 针对OleDb连接的工厂
///
public class OleDbFactory : AbstractDbFactory
{
///
/// 构造函数
///
public OleDbFactory()
{
}
///
/// 建立默认Connection对象
///
///
public IDbConnection CreateConnection()
{
return new OleDbConnection();
}
///
/// 根据连接字符串建立Connection对象
///
/// 连接字符串
///
public IDbConnection CreateConnection(string strConn)
{
return new OleDbConnection(strConn);
}
///
/// 建立Command对象
///
///
public IDbCommand CreateCommand()
{
return new OleDbCommand();
}
///
/// 建立DataAdapter对象
///
///
public IDbDataAdapter CreateDataAdapter()
{
return new OleDbDataAdapter();
}
///
/// 根据Connection建立Transaction
///
/// Connection对象
///
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
{
return myDbConnection.BeginTransaction();
}
///
/// 根据Command建立DataReader
///
/// Command对象
///
public IDataReader CreateDataReader(IDbCommand myDbCommand)
{
return myDbCommand.ExecuteReader();
}
///
/// 获得连接字符串
///
///
public string GetConnectionString()
{
string strProvider = ConfigurationSettings.AppSettings["OleDbProvider"];
string strDataSource = ConfigurationSettings.AppSettings["OleDbDataSource"];
string strConnectionString = "Provider = " + strProvider + ";Data Source = " + strDataSource + ";";
return strConnectionString;
}
}
}
(5)OdbcFactory.cs
using System;
using System.Data;
using System.Data.Odbc;
using System.Configuration;
namespace DbService
{
///
/// 针对Odbc连接的工厂
///
public class OdbcFactory : AbstractDbFactory
{
///
/// 构造函数
///
public OdbcFactory()
{
}
///
/// 建立默认Connection对象
///
///
public IDbConnection CreateConnection()
{
return new OdbcConnection();
}
///
/// 根据连接字符串建立Connection对象
///
/// 连接字符串
///
public IDbConnection CreateConnection(string strConn)
{
return new OdbcConnection(strConn);
}
///
/// 建立Command对象
///
///
public IDbCommand CreateCommand()
{
return new OdbcCommand();
}
///
/// 建立DataAdapter对象
///
///
public IDbDataAdapter CreateDataAdapter()
{
return new OdbcDataAdapter();
}
///
/// 根据Connection建立Transaction
///
/// Connection对象
///
public IDbTransaction CreateTransaction(IDbConnection myDbConnection)
{
return myDbConnection.BeginTransaction();
}
///
/// 根据Command建立DataReader
///
/// Command对象
///
public IDataReader CreateDataReader(IDbCommand myDbCommand)
{
return myDbCommand.ExecuteReader();
}
///
/// 获得连接字符串
///
///
public string GetConnectionString()
{
string strDriver = ConfigurationSettings.AppSettings["OdbcDriver"];
string strDBQ = ConfigurationSettings.AppSettings["OdbcDBQ"];
string strConnectionString = "Driver={" + strDriver + "}; DBQ=" + strDBQ + ";";
return strConnectionString;
}
}
}
待续......
关键字词: