用C#实现的数据库抽象工厂(二)

王朝c#·作者佚名  2006-01-09
宽屏版  字体: |||超大  

用C#实现的数据库抽象工厂(二)

以下3个类分别是Factory针对SqlServer专用连接、OleDb连接和Odbc连接时的具体实现:

(3)SqlFactory.cs

using System;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

namespace DbService

{

/// <summary>

/// 针对SqlServer专用连接的工厂

/// </summary>

public class SqlFactory : AbstractDbFactory

{

/// <summary>

/// 构造函数

/// </summary>

public SqlFactory()

{

}

/// <summary>

/// 建立默认Connection对象

/// </summary>

/// <returns>Connection对象</returns>

public IDbConnection CreateConnection()

{

return new SqlConnection();

}

/// <summary>

/// 根据连接字符串建立Connection对象

/// </summary>

/// <param name="strConn">连接字符串</param>

/// <returns>Connection对象</returns>

public IDbConnection CreateConnection(string strConn)

{

return new SqlConnection(strConn);

}

/// <summary>

/// 建立Command对象

/// </summary>

/// <returns>Command对象</returns>

public IDbCommand CreateCommand()

{

return new SqlCommand();

}

/// <summary>

/// 建立DataAdapter对象

/// </summary>

/// <returns>DataAdapter对象</returns>

public IDbDataAdapter CreateDataAdapter()

{

return new SqlDataAdapter();

}

/// <summary>

/// 根据Connection建立Transaction

/// </summary>

/// <param name="myDbConnection">Connection对象</param>

/// <returns>Transaction对象</returns>

public IDbTransaction CreateTransaction(IDbConnection myDbConnection)

{

return myDbConnection.BeginTransaction();

}

/// <summary>

/// 根据Command建立DataReader

/// </summary>

/// <param name="myDbCommand">Command对象</param>

/// <returns>DataReader对象</returns>

public IDataReader CreateDataReader(IDbCommand myDbCommand)

{

return myDbCommand.ExecuteReader();

}

/// <summary>

/// 获得连接字符串

/// </summary>

/// <returns>连接字符串</returns>

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

{

/// <summary>

/// 针对OleDb连接的工厂

/// </summary>

public class OleDbFactory : AbstractDbFactory

{

/// <summary>

/// 构造函数

/// </summary>

public OleDbFactory()

{

}

/// <summary>

/// 建立默认Connection对象

/// </summary>

/// <returns>Connection对象</returns>

public IDbConnection CreateConnection()

{

return new OleDbConnection();

}

/// <summary>

/// 根据连接字符串建立Connection对象

/// </summary>

/// <param name="strConn">连接字符串</param>

/// <returns>Connection对象</returns>

public IDbConnection CreateConnection(string strConn)

{

return new OleDbConnection(strConn);

}

/// <summary>

/// 建立Command对象

/// </summary>

/// <returns>Command对象</returns>

public IDbCommand CreateCommand()

{

return new OleDbCommand();

}

/// <summary>

/// 建立DataAdapter对象

/// </summary>

/// <returns>DataAdapter对象</returns>

public IDbDataAdapter CreateDataAdapter()

{

return new OleDbDataAdapter();

}

/// <summary>

/// 根据Connection建立Transaction

/// </summary>

/// <param name="myDbConnection">Connection对象</param>

/// <returns>Transaction对象</returns>

public IDbTransaction CreateTransaction(IDbConnection myDbConnection)

{

return myDbConnection.BeginTransaction();

}

/// <summary>

/// 根据Command建立DataReader

/// </summary>

/// <param name="myDbCommand">Command对象</param>

/// <returns>DataReader对象</returns>

public IDataReader CreateDataReader(IDbCommand myDbCommand)

{

return myDbCommand.ExecuteReader();

}

/// <summary>

/// 获得连接字符串

/// </summary>

/// <returns>连接字符串</returns>

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

{

/// <summary>

/// 针对Odbc连接的工厂

/// </summary>

public class OdbcFactory : AbstractDbFactory

{

/// <summary>

/// 构造函数

/// </summary>

public OdbcFactory()

{

}

/// <summary>

/// 建立默认Connection对象

/// </summary>

/// <returns>Connection对象</returns>

public IDbConnection CreateConnection()

{

return new OdbcConnection();

}

/// <summary>

/// 根据连接字符串建立Connection对象

/// </summary>

/// <param name="strConn">连接字符串</param>

/// <returns>Connection对象</returns>

public IDbConnection CreateConnection(string strConn)

{

return new OdbcConnection(strConn);

}

/// <summary>

/// 建立Command对象

/// </summary>

/// <returns>Command对象</returns>

public IDbCommand CreateCommand()

{

return new OdbcCommand();

}

/// <summary>

/// 建立DataAdapter对象

/// </summary>

/// <returns>DataAdapter对象</returns>

public IDbDataAdapter CreateDataAdapter()

{

return new OdbcDataAdapter();

}

/// <summary>

/// 根据Connection建立Transaction

/// </summary>

/// <param name="myDbConnection">Connection对象</param>

/// <returns>Transaction对象</returns>

public IDbTransaction CreateTransaction(IDbConnection myDbConnection)

{

return myDbConnection.BeginTransaction();

}

/// <summary>

/// 根据Command建立DataReader

/// </summary>

/// <param name="myDbCommand">Command对象</param>

/// <returns>DataReader对象</returns>

public IDataReader CreateDataReader(IDbCommand myDbCommand)

{

return myDbCommand.ExecuteReader();

}

/// <summary>

/// 获得连接字符串

/// </summary>

/// <returns></returns>

public string GetConnectionString()

{

string strDriver = ConfigurationSettings.AppSettings["OdbcDriver"];

string strDBQ = ConfigurationSettings.AppSettings["OdbcDBQ"];

string strConnectionString = "Driver={" + strDriver + "}; DBQ=" + strDBQ + ";";

return strConnectionString;

}

}

}

待续......

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有