Enterprise Library方式-依設定返回指定的Database

Enterprise Library方式-依設定返回指定的Database

在摳叮幫幫忙中,我需要操作

1.SQL

2.摳叮幫幫忙要用的系統參數,放在CA_CODE.mdb 

3. 使用者可自行增減管理的CODE.mdb

 

所以在baseDB.cs中   我需要依設定返回指定的Database ,雖然一樣是ACCESS,但是有兩個檔案 @@

我的做法如下


      // 動態指定連線字串

     //DB_Type  可指定 SQL,ACCESS,CA_ACCESS  ,也就是第二個ACCESS檔,兩個MDB的PATH不同

    // path 在設定APP.COPNFIG 中設定

        protected Database Get_GenericDatabase( string  DB_Type  )
        {

            switch (DB_Type)
            {
                case "SQL":
                    if (ConnectionString == "") return null;
                    GenericDatabase db = new GenericDatabase(ConnectionString, System.Data.SqlClient.SqlClientFactory.Instance);
                    return db;
                 
                case "ACCESS":
                    if (ACCSCC_ConnectionString == "") return null;
                    GenericDatabase db2 = new GenericDatabase(ACCSCC_ConnectionString, System.Data.OleDb.OleDbFactory.Instance);
                    return db2;
                case "CA_ACCESS":
                    if (CA_ACCSCC_ConnectionString == "") return null;
                    GenericDatabase db4 = new GenericDatabase(CA_ACCSCC_ConnectionString, System.Data.OleDb.OleDbFactory.Instance);
                    return db4;
                
                default: //default SQL
                    if (ConnectionString == "") return null;
                    GenericDatabase db3 = new GenericDatabase(ConnectionString, System.Data.SqlClient.SqlClientFactory.Instance);
                    return db3;
                  

            } 

 

用法:

DB_BaseFunction 繼承baseDB

DB_BaseFunction的建構式中設定,new DB_BaseFunction 物件時,

必須告知,此次要存取的是什麼db,跟連線字串,ACCESS連線字串也是在app.config中設定就可以了

PS( 每次要處理的連線字串都不一樣,所以要每次傳...幫幫忙的資料庫精靈可以任意設連線...XD )

public DB_BaseFunction(string DB_Type  ,string connstr)

好處: 

處理任意SQL連線與兩個ACCES檔案, 資料存取的FUNCTION 卻只需要一份共用共用的

等日後有不同的資料庫連線,再去寫多型  及 修正 Get_GenericDatabase 吧     XD