C#實現工廠模式簡介--實現訪問不同的資料庫
阿新 • • 發佈:2019-02-14
首先是配置檔案:其中的providerName就是指定的不同資料庫型別
- <connectionStrings>
- <addnameaddname="..."connectionString="..."providerName="System.Data.OleDb"/>
- <addnameaddname="..."connectionString="..."providerName="System.Data.SqlClient"/>
- </connectionStrings>
下面看一下使用工廠的這個類:
- class DataBaseFac
- {
- private DbConnection cnn;//抽象型別
- private DbCommand cmd;//抽象型別
- private DbProviderFactory provider;
- public DataBaseFac()
- {
- //從配置檔案中取出標示資料庫型別的字串
- string providerName=ConfigurationManager.ConnectionStrings[1].ProviderName;
- //根據上一部的結果工廠建立一個對應的例項
- provider=DbProviderFactories.GetFactory(providerName);
- //使用該例項就可以建立對應的connection,command和adapater物件了
- //除錯的時候可以看到這幾個物件都變成了相應於資料庫型別的
- cnn=provider.CreateConnection();
- cnn.ConnectionString=ConfigurationManager.ConnectionStrings[1].ConnectionString;
- cmd=provider.CreateCommand();
- cmd.Connection=cnn;
- }
- //執行一次查詢,返回資料表
- public DataTable ExcuteQuery(string queryString)
- {
- DataTable result=new DataTable();
- DbDataAdapter adapter=provider.CreateDataAdapter();
- cmd.CommandType=CommandType.Text;
- cmd.CommandText=queryString;
- adapter.SelectCommand=cmd;
- try
- {
- cnn.Open();
- adapter.Fill(result);
- }
- catch
- {
- result=null;
- }
- finally
- {
- cnn.Close();
- }
- return result;
- }