プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# OracleConnectionStringBuilderクラス

`OracleConnectionStringBuilder`オブジェクトによって、アプリケーションは接続文字列を作成し変更できます。

クラスの継承

`System.Object`

`System.Data.Common.DbConnectionStringBuilder`

`Oracle.DataAccess.Client.OracleConnectionStringBuilder`

宣言

    // C#
    public sealed class OracleConnectionStringBuilder : DbConnectionStringBuilder

要件

プロバイダ | ODP.NET管理対象外ドライバ | ODP.NET管理対象ドライバ
--- | --- | ---
アセンブリ | `Oracle.DataAccess.dll` | `Oracle.ManagedDataAccess.dll`
ネームスペース | `Oracle.DataAccess.Client` | `Oracle.ManagedDataAccess.Client`
.NET Framework | 3.5, 4.5, 4.6, 4.7 | 4.5, 4.6, 4.7

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

予約文字を使用して値を設定する場合には、次のルールに従う必要があります。

1. 一重引用符で囲まれた文字を含む値

   値に一重引用符で囲まれた文字が含まれる場合、値全体を二重引用符で囲む必要があります。

   たとえば、値が`'scoTT'`の場合、`password =``"'scoTT'"`とします。

2. 二重引用符で囲まれた文字を含む値

   値は二重引用符で囲み、大/小文字の区別を順守して、値が大文字にならないようにする必要があります。

   値に二重引用符で囲まれた文字が含まれる場合、値を一重引用符で囲む必要があります。

   たとえば、値が`"scoTT"`の場合、`password =` '`"scoTT"'`とします。

3. 一重引用符と二重引用符の両方で囲まれた文字を含む値

   値が一重引用符と二重引用符の両方で囲まれている場合、値を囲む引用符は、その値を使用するたびに二重に囲む必要があります。

   たとえば、値が`"sco'TT"`の場合、`password =` `'"sco''TT"'`とします。

4. スペースを含む値

   先頭および末尾にあるすべてのスペースは無視されますが、値の間にあるスペースは認識されます。値の先頭または末尾にスペースが必要な場合、二重引用符で囲む必要があります。

   たとえば、値が`<Sco` `TT>`の場合、`User ID =` `Sco` `TT`とします。

   たとえば、値が`<Sco` `TT>`の場合、`User ID =` `"Sco` `TT "`とします。

5. 接続文字列内で複数回表示されるキーワード

   指定したキーワードが接続文字列で複数回表示される場合、リストされた最後のキーワードが値セットで使用されます。

   たとえば、`"User ID = scott; password = tiger; User ID = david"`接続文字列の場合、`User ID`の値は`david`です。

例

    // C#

    using System;
    using System.Data;
    using System.Data.Common;
    using Oracle.DataAccess.Client;
    using System.Collections;

    class ConnectionStringBuilderSample
    {
    static void Main(string[] args)
      {
        bool bRet = false;

        // Create an instance of OracleConnectionStringBuilder
        OracleConnectionStringBuilder connStrBuilder =
          new OracleConnectionStringBuilder();

        // Add new key/value pairs to the connection string
        connStrBuilder.Add("User Id", "scott");
        connStrBuilder.Add("Password", "tiger");
        connStrBuilder.Add("Data Source", "oracle");
        connStrBuilder.Add("pooling", false);

        // Modify the existing value
        connStrBuilder["Data source"] = "inst1";

        // Remove an entry from the connection string
        bRet = connStrBuilder.Remove("pooling");

        //ContainsKey indicates whether or not the specific key exist
        //returns true even if the user has not specified it explicitly
        Console.WriteLine("Enlist exist: " +
                  connStrBuilder.ContainsKey("Enlist"));

        //returns false
        connStrBuilder.ContainsKey("Invalid");

        // ShouldSerialize indicates whether or not a specific key
        // exists in connection string inherited from DbConnectionStringBuilder.
        // returns true if the key is explicitly added the user otherwise false;
        // this will return false as this key doesn't exists.
        connStrBuilder.ShouldSerialize("user");

        // returns false because this key is nott added by user explicitly.
        connStrBuilder.ShouldSerialize("Enlist");

        // IsFixedSize [read-only property]
        Console.WriteLine("Connection String is fixed size only: "
                                + connStrBuilder.IsFixedSize);
        Console.WriteLine("Key/Value Pair Count: " + connStrBuilder.Count);

        //adding a new key which is not supported by the provider
        //is not allowed.
        try
        {
          //this will throw an exception.
          connStrBuilder.Add("NewKey", "newValue");
        }
        catch (Exception ex)
        {
          Console.WriteLine(ex.Message);
        }

        Console.WriteLine("Key/Value Pair Count: " + connStrBuilder.Count);

        //modifying a existing key is allowed.
        connStrBuilder.Add("Enlist", false);
        Console.WriteLine("Key/Value Pair Count: " + connStrBuilder.Count);

        // Get all the keys and values supported by the provider.
        ICollection keyCollection = connStrBuilder.Keys;
        ICollection valueCollection = connStrBuilder.Values;

        IEnumerator keys = keyCollection.GetEnumerator();
        IEnumerator values = valueCollection.GetEnumerator();

        while (keys.MoveNext())
        {
          values.MoveNext();
          Console.WriteLine("Key: {0}     Value: {1} \n"
            ,keys.Current ,values.Current);
        }
      }
    }

関連項目:

- Oracle.DataAccess.ClientおよびOracle.ManagedDataAccess.Clientのネームスペース

- OracleConnectionStringBuilderメンバー

- OracleConnectionStringBuilderコンストラクタ

- OracleConnectionStringBuilderパブリック・プロパティ

- OracleConnectionStringBuilderパブリック・メソッド