次の方法で共有


DbConnectionStringBuilder クラス

定義

厳密に型指定された接続文字列ビルダーの基本クラスを提供します。

public ref class DbConnectionStringBuilder : System::Collections::IDictionary
public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
継承
DbConnectionStringBuilder
派生
実装

次のコンソール アプリケーションは、Microsoft Jet データベース用と SQL Server データベース用の 2 つの接続文字列をビルドします。 いずれの場合も、コードは汎用 DbConnectionStringBuilder クラスを使用して接続文字列を作成し、DbConnectionStringBuilder インスタンスの ConnectionString プロパティを厳密に型指定された接続クラスのコンストラクターに渡します。 これは必須ではありません。コードでは、厳密に型指定された個々の接続文字列ビルダー インスタンスを作成することもできます。 この例では、既存の接続文字列も解析し、接続文字列の内容を操作するさまざまな方法を示します。

DbConnectionStringBuilder builder =
    new DbConnectionStringBuilder();
builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
// Set up row-level locking.
builder.Add("Jet OLEDB:Database Locking Mode", 1);

// The DbConnectionStringBuilder class
// is database agnostic, so it's possible to
// build any type of connection string using
// this class.

// The ConnectionString property might have been
// formatted by the DbConnectionStringBuilder class.
OleDbConnection oledbConnect = new
    OleDbConnection(builder.ConnectionString);
Console.WriteLine(oledbConnect.ConnectionString);

// Use the same DbConnectionStringBuilder to create
// a SqlConnection object.
builder.Clear();
builder.Add("integrated security", true);
builder.Add("Initial Catalog", "AdventureWorks");
builder.Add("Data Source", "(local)");

SqlConnection sqlConnect = new
    SqlConnection(builder.ConnectionString);
Console.WriteLine(sqlConnect.ConnectionString);

// Pass the DbConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);initial catalog=AdventureWorks";
builder["Server"] = ".";

// Setting the indexer adds the value, if necessary.
builder["Integrated Security"] = true;
Console.WriteLine(builder.ConnectionString);
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")

    ' Set up row-level locking.
    builder.Add("Jet OLEDB:Database Locking Mode", 1)

    ' Note that the DbConnectionStringBuilder class
    ' is database agnostic, and it's possible to
    ' build any type of connection string using
    ' this class.
    ' Notice that the ConnectionString property may have been
    ' formatted by the DbConnectionStringBuilder class.

    Dim oledbConnect As New _
        OleDbConnection(builder.ConnectionString)
    Console.WriteLine(oledbConnect.ConnectionString)

    ' Use the same DbConnectionStringBuilder to create
    ' a SqlConnection object.
    builder.Clear()
    builder.Add("integrated security", True)
    builder.Add("Initial Catalog", "AdventureWorks")
    builder.Add("Data Source", "(local)")

    Dim sqlConnect As New SqlConnection(builder.ConnectionString)
    Console.WriteLine(sqlConnect.ConnectionString)

    ' Pass the DbConnectionStringBuilder an existing
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = "server=(local);initial catalog=AdventureWorks"
    builder.Item("Server") = "."

    ' The Item property is the default for the class,
    ' and setting the Item property adds the value if
    ' necessary.
    builder("Integrated Security") = True
    Console.WriteLine(builder.ConnectionString)

    Console.WriteLine("Press Enter to finish.")
    Console.ReadLine()
End Sub

注釈

DbConnectionStringBuilder クラスは、厳密に型指定された接続文字列ビルダー (SqlConnectionStringBuilderOleDbConnectionStringBuilderなど) の派生元となる基本クラスを提供します。 接続文字列ビルダーを使用すると、開発者はプログラムによって構文的に正しい接続文字列を作成し、既存の接続文字列を解析して再構築できます。

DbConnectionStringBuilder は、データベースに依存しない方法で定義されています。 System.Data.Common 名前空間が追加されたため、開発者は任意のデータベースに対して動作する接続文字列を構築するためにプログラムできる基本クラスを必要とします。 したがって、DbConnectionStringBuilder クラスを使用すると、ユーザーは任意のキーと値のペアを割り当て、結果の接続文字列を厳密に型指定されたプロバイダーに渡すことができます。 .NET の一部として含まれるすべてのデータ プロバイダーには、SqlConnectionStringBuilderOracleConnectionStringBuilderOdbcConnectionStringBuilderOleDbConnectionStringBuilderDbConnectionStringBuilderから継承する厳密に型指定されたクラスが用意されています。

任意のプロバイダーの接続文字列をビルド、割り当て、編集できます。 特定のキーと値のペアをサポートするプロバイダーの場合、接続文字列ビルダーは、既知のペアに対応する厳密に型指定されたプロパティを提供します。 不明な値をサポートする機能を必要とするプロバイダーの場合は、任意のキーと値のペアを指定することもできます。

DbConnectionStringBuilder クラスは、ICustomTypeDescriptor インターフェイスを実装します。 つまり、クラスはデザイン時に Visual Studio デザイナーと連携します。 開発者がデザイナーを使用して厳密に型指定された DataSet と厳密に型指定された接続を Visual Studio 内で構築する場合、厳密に型指定された接続文字列ビルダー クラスには、その型に関連付けられているプロパティが表示され、既知のキーの共通値をマップできるコンバーターもあります。

アプリケーションの一部として接続文字列を作成する必要がある場合は、DbConnectionStringBuilder クラスまたはその厳密に型指定された派生クラスのいずれかを使用して、接続文字列をビルドおよび変更します。 DbConnectionStringBuilder クラスを使用すると、アプリケーション構成ファイルに格納されている接続文字列を簡単に管理できます。

接続文字列は、厳密に型指定された接続文字列ビルダー クラスまたは DbConnectionStringBuilder クラスを使用して作成できます。 DbConnectionStringBuilder では、有効なキーと値のペアのチェックは実行されません。 そのため、このクラスを使用するときに無効な接続文字列を作成できます。 SqlConnectionStringBuilder では、SQL Server でサポートされているキーと値のペアのみがサポートされます。無効なペアを追加しようとすると、例外がスローされます。

Add メソッドと Item[] プロパティの両方で、悪意のあるアクターが悪意のあるエントリを挿入しようとするケースを処理します。 たとえば、次のコードは、入れ子になったキーと値のペアを正しくエスケープします。

Dim builder As New System.Data.Common.DbConnectionStringBuilder
builder("Data Source") = "(local)"
builder("integrated sSecurity") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";

結果は、無効な値を安全な方法で処理する次の接続文字列です。

data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"

コンストラクター

DbConnectionStringBuilder()

DbConnectionStringBuilder クラスの新しいインスタンスを初期化します。

DbConnectionStringBuilder(Boolean)

必要に応じて、値を引用符で囲む ODBC 規則を使用して、DbConnectionStringBuilder クラスの新しいインスタンスを初期化します。

プロパティ

BrowsableConnectionString

ConnectionString プロパティが Visual Studio デザイナーに表示されるかどうかを示す値を取得または設定します。

ConnectionString

DbConnectionStringBuilderに関連付けられている接続文字列を取得または設定します。

Count

ConnectionString プロパティに含まれるキーの現在の数を取得します。

IsFixedSize

DbConnectionStringBuilder に固定サイズがあるかどうかを示す値を取得します。

IsReadOnly

DbConnectionStringBuilder が読み取り専用かどうかを示す値を取得します。

Item[String]

指定したキーに関連付けられている値を取得または設定します。

Keys

DbConnectionStringBuilder内のキーを含む ICollection を取得します。

Values

DbConnectionStringBuilderの値を含む ICollection を取得します。

メソッド

Add(String, Object)

指定したキーと値を持つエントリを DbConnectionStringBuilderに追加します。

AppendKeyValuePair(StringBuilder, String, String, Boolean)

既存の StringBuilder オブジェクトにキーと値を追加する効率的で安全な方法を提供します。

AppendKeyValuePair(StringBuilder, String, String)

既存の StringBuilder オブジェクトにキーと値を追加する効率的で安全な方法を提供します。

Clear()

DbConnectionStringBuilder インスタンスの内容をクリアします。

ClearPropertyDescriptors()

関連付けられている DbConnectionStringBuilder上の PropertyDescriptor オブジェクトのコレクションをクリアします。

ContainsKey(String)

DbConnectionStringBuilder に特定のキーが含まれているかどうかを判断します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
EquivalentTo(DbConnectionStringBuilder)

この DbConnectionStringBuilder オブジェクト内の接続情報と、指定されたオブジェクト内の接続情報を比較します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetProperties(Hashtable)

指定された Hashtable に、この DbConnectionStringBuilderのすべてのプロパティに関する情報を入力します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
Remove(String)

指定したキーを持つエントリを DbConnectionStringBuilder インスタンスから削除します。

ShouldSerialize(String)

指定したキーがこの DbConnectionStringBuilder インスタンスに存在するかどうかを示します。

ToString()

この DbConnectionStringBuilderに関連付けられている接続文字列を返します。

TryGetValue(String, Object)

この DbConnectionStringBuilderから、指定されたキーに対応する値を取得します。

明示的なインターフェイスの実装

ICollection.CopyTo(Array, Int32)

特定の Array インデックスから始まる ICollection の要素を Arrayにコピーします。

ICollection.IsSynchronized

ICollection へのアクセスが同期されているかどうかを示す値を取得します (スレッド セーフ)。

ICollection.SyncRoot

ICollectionへのアクセスを同期するために使用できるオブジェクトを取得します。

ICustomTypeDescriptor.GetAttributes()

コンポーネントのこのインスタンスのカスタム属性のコレクションを返します。

ICustomTypeDescriptor.GetClassName()

コンポーネントのこのインスタンスのクラス名を返します。

ICustomTypeDescriptor.GetComponentName()

コンポーネントのこのインスタンスの名前を返します。

ICustomTypeDescriptor.GetConverter()

コンポーネントのこのインスタンスの型コンバーターを返します。

ICustomTypeDescriptor.GetDefaultEvent()

コンポーネントのこのインスタンスの既定のイベントを返します。

ICustomTypeDescriptor.GetDefaultProperty()

コンポーネントのこのインスタンスの既定のプロパティを返します。

ICustomTypeDescriptor.GetEditor(Type)

コンポーネントのこのインスタンスの指定した型のエディターを返します。

ICustomTypeDescriptor.GetEvents()

コンポーネントのこのインスタンスのイベントを返します。

ICustomTypeDescriptor.GetEvents(Attribute[])

指定した属性配列をフィルターとして使用して、コンポーネントのこのインスタンスのイベントを返します。

ICustomTypeDescriptor.GetProperties()

コンポーネントのこのインスタンスのプロパティを返します。

ICustomTypeDescriptor.GetProperties(Attribute[])

属性配列をフィルターとして使用して、コンポーネントのこのインスタンスのプロパティを返します。

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

指定したプロパティ記述子によって記述されたプロパティを含むオブジェクトを返します。

IDictionary.Add(Object, Object)

指定されたキーと値を持つ要素を IDictionary オブジェクトに追加します。

IDictionary.Contains(Object)

IDictionary オブジェクトに、指定したキーを持つ要素が含まれているかどうかを判断します。

IDictionary.GetEnumerator()

IDictionary オブジェクトの IDictionaryEnumerator オブジェクトを返します。

IDictionary.IsFixedSize

IDictionary オブジェクトのサイズが固定されているかどうかを示す値を取得します。

IDictionary.IsReadOnly

IDictionary が読み取り専用かどうかを示す値を取得します。

IDictionary.Item[Object]

指定したキーを持つ要素を取得または設定します。

IDictionary.Remove(Object)

指定したキーを持つ要素を IDictionary オブジェクトから削除します。

IEnumerable.GetEnumerator()

コレクションを反復処理する列挙子を返します。

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定した型に基づいて、IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryableに変換します。

適用対象

こちらもご覧ください