用C#实现的数据库抽象工厂(二)
点击次数:23 次 发布日期:2008-11-27 01:26:11 作者:源代码网
|
以下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; } } } 待续...... 源代码网供稿. |
