DbConnectionStringBuilder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
厳密に型指定された接続文字列ビルダーの基本クラスを提供します。
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 クラスは、厳密に型指定された接続文字列ビルダー (SqlConnectionStringBuilder、OleDbConnectionStringBuilderなど) の派生元となる基本クラスを提供します。 接続文字列ビルダーを使用すると、開発者はプログラムによって構文的に正しい接続文字列を作成し、既存の接続文字列を解析して再構築できます。
DbConnectionStringBuilder は、データベースに依存しない方法で定義されています。 System.Data.Common 名前空間が追加されたため、開発者は任意のデータベースに対して動作する接続文字列を構築するためにプログラムできる基本クラスを必要とします。 したがって、DbConnectionStringBuilder クラスを使用すると、ユーザーは任意のキーと値のペアを割り当て、結果の接続文字列を厳密に型指定されたプロバイダーに渡すことができます。 .NET の一部として含まれるすべてのデータ プロバイダーには、SqlConnectionStringBuilder、OracleConnectionStringBuilder、OdbcConnectionStringBuilder、OleDbConnectionStringBuilderの DbConnectionStringBuilderから継承する厳密に型指定されたクラスが用意されています。
任意のプロバイダーの接続文字列をビルド、割り当て、編集できます。 特定のキーと値のペアをサポートするプロバイダーの場合、接続文字列ビルダーは、既知のペアに対応する厳密に型指定されたプロパティを提供します。 不明な値をサポートする機能を必要とするプロバイダーの場合は、任意のキーと値のペアを指定することもできます。
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 を取得します。 |
メソッド
明示的なインターフェイスの実装
拡張メソッド
Cast<TResult>(IEnumerable) |
IEnumerable の要素を指定した型にキャストします。 |
OfType<TResult>(IEnumerable) |
指定した型に基づいて、IEnumerable の要素をフィルター処理します。 |
AsParallel(IEnumerable) |
クエリの並列化を有効にします。 |
AsQueryable(IEnumerable) |
IEnumerable を IQueryableに変換します。 |
適用対象
こちらもご覧ください
- ADO.NETで接続文字列を
する - ADO.NET の概要
.NET