夢にまでデータベースの国内事業の拡大を支援達成するためのOracle DatabaseエンタープライズライブラリベースのWinフォームの開発フレームワークの使用ODP.NET(Oracle.ManagedDataAccess.dll)アクセスをサポートするために開発フレームワークでMicrosoftエンタープライズライブラリを拡張

「エッセイの前でODP.NET(Oracle.ManagedDataAccess.dll)Oracleデータベースアクセスのコード生成ツールDatabase2Sharpを使用して、クライアントは無料のインストールのOracleを達成するため、Oracleの互換の32ビット、64ビットのドライブは、」コード生成ツールでの使用について説明しODPアクセスOracleデータベースへの.NET(Oracle.ManagedDataAccess.dll)、我々が対処する方法の枠組みの中で、このアプリケーションを使用する必要がある場合は?私たちは主にマイクロソフトエンタープライズライブラリ(現在はバージョン4.1を使用して)の基礎となる開発フレームワークを使用しているので、それはそれはEntLibContrib.Data.OdpNetの使用があるので、公式のOracle拡張機能を使用する場合、(エンタープライズライブラリの拡張ライブラリはOracle.DataAccess.dllを使用しました)が、この方法では、32ビットおよび64ビットの問題に限定されている。我々はODP.NET(Oracle.ManagedDataAccess.dll)モードを使用する場合は、国内のサポートデータベースに似た拡張エンタープライズ、することができ、独自のライブラリのサポートを使用することができます- -統一互換性を達成するために、競合を避けるために、ライブラリOracle.ManagedDataAccess 32と64を使用して、データベース理論、同じ夢。

1、延長サポートODP.NET(Oracle.ManagedDataAccess.dll)アクセス

サポートへのカスタム拡張機能を実現するために、我々は同様の拡張ライブラリになる前に、当社のカスタムの夢をデータベースで書かれたように、次のエッセイを理解することができます前に、この点では、処理するためのライブラリーのビジネスライブラリを拡張する必要がある「Winフォームの開発エンタープライズライブラリに基づきます拡張操作の夢に国内のデータベースをサポートして達成するためのフレームワークは、「我々は今、ODP.NET(Oracle.ManagedDataAccess.dll)モード用に拡張サポートを増加しています。

まず、我々は、ナゲットの方法により事業拡大やMySQLの他の拡張のための参照ライブラリプロジェクトを作成し、対応するOracle.ManagedDataAccess.dllライブラリを取得し、あなたはいくつかの調整を行うことができます。

 以下のコードに似てOracleDatabase

使用してシステムを。
使用してSystem.Dataを。
使用してSystem.Data.Commonを。

使用してMicrosoft.Practices.EnterpriseLibrary.Commonを。
使用してMicrosoft.Practices.EnterpriseLibrary.Dataを。
使用してMicrosoft.Practices.EnterpriseLibrary.Data.Configurationを。
使用してOracle.ManagedDataAccess.Clientを。

名前空間EntLibContrib.Data.OracleManaged 
{ 
    ///  <要約> 
    ///  <パラ> オラクル数据库对象(使用ODP驱动)</パラ> 
    ///  </要約> 
    ///  <備考> 
    ///  <パラ> 
    ///内部データベースに接続するには、OracleからOracleProviderを使用しています。
    ///  </パラ> 
    ///  </備考> 
    [DatabaseAssembler(typeof演算(OracleDatabaseAssembler))]
     パブリック クラスOracleDatabase:データベース
    { 
        ///  <要約> 
        /// 初期化の新しいインスタンス<CREF = "OracleDatabaseを参照してください「/> クラス
         /// 接続文字列を持ちます。
        ///  </要約> 
        ///  ます。<param name = "のConnectionString"> 接続文字列。</ param>の
        塩基(れたconnectionString、OracleClientFactory.Instance)
        { 
        } 
        
        ///  <要約> 
        ///  <パラ> 
        ///は用の区切パラメータに使用されるトークンのパラメータを取得
         /// Oracleデータベース。</パラ> 
        ///  </要約> 
        ///  <値> 
        ///  <パラ> '?' シンボル。</パラ> 
        ///  </ value>の
        保護 のchar ParameterToken 
        { 
            取得
            { 
                リターン ' ' ; 
            } 
        } 

        .........

メインは、Oracleの名前として、Oracleの缶の対応するタイプを変更することで、同様のパラメータの兆候がある:他の場所、それらを繰り返す、ない調整するための一つ他の1。

終了したら、アセンブリ名を変更し、EntLibContrib.Data.OracleManaged.dllにコンパイルすることができます。

 

2、アイテムデータベース構成設定アプリケーションフレームワーク

コンフィギュレーション・ファイルに示すように、上記の手順を実行して、我々はそれが通常を解析し、処理することができ、次の設定情報を追加することができます。

 

 二つの方法の上に使用し、1は完全なデータベースのサポートに次のファイルの情報を示すような方法は、1はここだけで、EntLibContrib.Data.OracleManagedの道解放されEntLibContrib.Data.OdpNetの公式拡張機能です。

<?XMLバージョン= "1.0" ?> 
< 設定> 
  < configSections > 
    < セクション= "dataConfiguration" タイプ= "Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings、Microsoft.Practices.EnterpriseLibrary.Data" /> 
    < セクション= "oracleConnectionSettings" タイプ= "EntLibContrib.Data.OdpNet.Configuration.OracleConnectionSettings、EntLibContrib.Data.OdpNet"  /> 
  </ configSections > 
  < のconnectionStrings > 
    <!
    追加= "SQLServerの" providerNameで= "System.Data.SqlClientの" れたconnectionString = ";データソース=(ローカル);初期カタログ= WinFramework;セキュリティ情報= Falseのを永続統合セキュリティ= SSPI" /> 
    
    <! - オラクルを数据库的连接字符串- > 
    < 追加= "神託" providerNameで= "System.Data.OracleClient.dllへ" たconnectionString = "データソース= ORCL;ユーザーID = WHC;パスワード= WHC" /> 
    
    <! - MySQLの数据库的连接字符串- > 
    < 追加= "mysqlの" providerNameで= "MySql.Data.MySqlClient"ConnectionString= "サーバ= localhostの;データベース= WinFramework; UID =ルート; PWD = 123456;" /> 
    
    <! - 接続文字列PostgreSQLデータベース- > 
    < 追加= "Npgsqlの" providerNameでは= "Npgsqlの" れたconnectionString =「サーバーローカルホスト=; = 5432ポート;データベース= Postgresでは、ユーザーID =のPostgres;パスワード= 123456 " /> 
    
    <! - パスのシンボル| DataDirectoryの|現在の実行ディレクトリの代表- >     
    <! - 接続文字列のデータベースSQLiteの- > 
    < 追加= "SQLiteの"   providerNameで= "System.Data.SQLite" たconnectionString = "データソース= | DataDirectoryの| \ WinFramework.db;バージョン= 3;"  />
    <! - 接続文字列のMicrosoft Accessデータベース- > 
    < 追加= "アクセス" providerNameで= "のSystem.Data.OleDb" たconnectionString =「プロバイダ= Microsoft.Jet.OLEDB.4.0;データソース= | DataDirectoryの| \ WinFramework.mdb;ユーザーID =管理者;ジェットOLEDB :データベースのパスワード=; "  />    
    
    <! - IBM DB2データベースの列に接続- > 
    < 追加     =" DB2 " providerNameで="は、IBM.Data.DB2 "     たconnectionString ="データベース= WHC; UID = WHC; PWD = 123456 " /> 
    
    <! - 接続文字列OdpNet実施形態のOracleデータベースを使用して- > 
    < 追加     =" ORACLE2 "     providerNameで="Oracle.DataAccess.Client」     のConnectionString= "データソース= ORCL;ユーザーID =勝つ;パスワードを=勝ちます;"  /> 
    < 追加     = "oracle3"     providerNameで= "OracleManaged"     たconnectionString = "データソース=(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = localhostを)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = orcl.mshome.net)));ユーザーID =勝つ;パスワード=勝つ"  /> 
  </ のconnectionStrings > 
  < dataConfiguration defaultDatabase = "oracle3" > 
    < providerMappings > 
      < 追加でdatabaseTypeを=" EntLibContrib.Data.MySql.MySqlDatabase 、EntLibContrib.Data.MySql」 /> 
      < 追加でdatabaseType = "EntLibContrib.Data.SQLite.SQLiteDatabase、EntLibContrib.Data.SqLite" 名前= "System.Data.SQLite"  /> 
      < 追加でdatabaseType = "EntLibContrib.Data.PostgreSql.NpgsqlDatabase、EntLibContrib.Data.PostgreSqlを" 名前=" Npgsqlの"  />       
      < 追加でdatabaseType = "EntLibContrib.Data.DB2.DB2Database、EntLibContrib.Data.DB2" 名前= "は、IBM.Data.DB2を"  /> 
      < 追加でdatabaseType EntLibContrib.Data.OdpNet.OracleDatabase =を" 、EntLibContrib.Data.OdpNet " 名前="オラクル。DataAccess.Client」  /> 
      < 追加でdatabaseType = "EntLibContrib.Data.Dm.DmDatabase、EntLibContrib.Data.Dm" 名前= "Dmの"  /> 
      <! - 增加ODP.NET(Oracle.ManagedDataAccess.dll)方式的扩展支持- > 
      < 追加でdatabaseType = "EntLibContrib.Data.OracleManaged.OracleDatabaseは、EntLibContrib.Data.OracleManaged" 名前= "OracleManagedを"  /> 
    </ providerMappings > 
  </ dataConfiguration > 
  
  < のappSettings > 

  </ のappSettings > 
  < スタートアップuseLegacyV2RuntimeActivationPolicy = "真" > 
    <supportedRuntime バージョン= "V4.0" SKU =」。NETFramework、バージョン= V4.0" /> 
    < supportedRuntime バージョン= "v2.0.50727の" /> 
  </ スタートアップ> 
</ 設定>

私たちは互換性のあるアクセスデータベースの様々なを達成することができることを下のようにします。

異なるデータベースを使用して、我々は、各テーブルオブジェクトの内容を置かれたデータ・アクセス層DALSQLに関連テーブル生成のSQLServerデータとして処理を生成するアクセス層異なるデータベース、する必要がありますが、に基づく処理の関連サブクラスのおかげデータベースのコード生成、コードはほとんど調整する必要がありません。

レッツは、以下に示すように、テスト、テストコードにこのODP.netの方法をサポートするために、コードのシンプルなピースを書きます。

private void btnGetData_Click(object sender, EventArgs e)
{
    string sql = "select * from T_Customer";// + " Where Name = :name";
    Database db = DatabaseFactory.CreateDatabase();
    DbCommand command = db.GetSqlStringCommand(sql);
    //command.Parameters.Add(new OracleParameter("name", "张三"));

    using (var ds = db.ExecuteDataSet(command))
    {
        this.dataGridView1.DataSource = ds.Tables[0];   
    }
}

测试界面效果如下所示。

以上这些处理,可以适用于Web框架、Bootstrap开发框架、Winform开发框架、混合式开发框架中的应用,也就是CS、BS都可以使用。

おすすめ

転載: www.cnblogs.com/wuhuacong/p/11907143.html