SqlConnectionStringBuilder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SqlConnection クラスで使用される接続文字列の内容を簡単に作成および管理できます。
public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
- 継承
-
SqlConnectionStringBuilder
- 属性
例
次のコンソール アプリケーションは、SQL Server データベースの接続文字列をビルドします。 このコードでは、SqlConnectionStringBuilder クラスを使用して接続文字列を作成し、SqlConnectionStringBuilder インスタンスのConnectionString プロパティを接続クラスのコンストラクターに渡します。 この例では、既存の接続文字列も解析し、接続文字列の内容を操作するさまざまな方法を示します。
Note
この例には、接続文字列で SqlConnectionStringBuilder がどのように機能するかを示すパスワードが含まれています。 アプリケーションでは、Windows 認証を使用することをお勧めします。 パスワードを使用する必要がある場合は、ハードコーディングされたパスワードをアプリケーションに含めないでください。
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
// Create a new SqlConnectionStringBuilder and
// initialize it with a few name/value pairs.
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(GetConnectionString());
// The input connection string used the
// Server key, but the new connection string uses
// the well-known Data Source key instead.
Console.WriteLine(builder.ConnectionString);
// Pass the SqlConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);user id=ab;" +
"password=********;initial catalog=AdventureWorks";
// Now that the connection string has been parsed,
// you can work with individual items.
Console.WriteLine(builder.Password);
builder.Password = "********";
// You can refer to connection keys using strings,
// as well. When you use this technique (the default
// Item property in Visual Basic, or the indexer in C#),
// you can specify any synonym for the connection string key
// name.
builder["Server"] = ".";
builder["Connect Timeout"] = 1000;
builder["Trusted_Connection"] = true;
Console.WriteLine(builder.ConnectionString);
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
private static string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Server=(local);Integrated Security=SSPI;" +
"Initial Catalog=AdventureWorks";
}
}
注釈
接続文字列ビルダーを使用すると、開発者はプログラムで構文的に正しい接続文字列を作成し、クラスのプロパティとメソッドを使用して既存の接続文字列を解析して再構築できます。 接続文字列ビルダーは、SQL Server で許可されている既知のキーと値のペアに対応する厳密に型指定されたプロパティを提供します。 アプリケーションの一部として接続文字列を作成する必要がある開発者は、 SqlConnectionStringBuilder クラスを使用して接続文字列をビルドおよび変更できます。 また、このクラスを使用すると、アプリケーション構成ファイルに格納されている接続文字列を簡単に管理できます。
SqlConnectionStringBuilderは、有効なキーと値のペアのチェックを実行します。 そのため、このクラスを使用して無効な接続文字列を作成することはできません。無効なペアを追加しようとすると、例外がスローされます。 このクラスは、シノニムの固定コレクションを保持し、シノニムから対応する既知のキー名に変換できます。
たとえば、 Item プロパティを使用して値を取得する場合は、必要なキーのシノニムを含む文字列を指定できます。 たとえば、Item プロパティや Remove メソッドなど、キー名を含む文字列を必要とするメンバーを使用する場合は、接続文字列内でこのキーに対して"ネットワーク アドレス"、"addr"、またはその他の許容されるシノニムを指定できます。 許容されるシノニムの完全な一覧については、ConnectionString プロパティを参照してください。
Item プロパティ ハンドルは、悪意のあるエントリを挿入しようとします。 たとえば、既定の Item プロパティ (C# ではインデクサー) を使用する次のコードでは、入れ子になったキーと値のペアが正しくエスケープされます。
Dim builder As New Microsoft.Data.SqlClient.SqlConnectionStringBuilder
builder("Data Source") = "(local)"
builder("Integrated Security") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
Console.WriteLine(builder.ConnectionString)
Microsoft.Data.SqlClient.SqlConnectionStringBuilder builder =
new Microsoft.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["Integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";
Console.WriteLine(builder.ConnectionString);
結果は、無効な値を安全な方法で処理する次の接続文字列です。
Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";
Integrated Security=True
コンストラクター
| Name | 説明 |
|---|---|
| SqlConnectionStringBuilder() |
SqlConnectionStringBuilder クラスの新しいインスタンスを初期化します。 |
| SqlConnectionStringBuilder(String) |
SqlConnectionStringBuilder クラスの新しいインスタンスを初期化します。 指定された接続文字列は、インスタンスの内部接続情報のデータを提供します。 |
プロパティ
| Name | 説明 |
|---|---|
| ApplicationIntent |
SQL Server 可用性グループ内のデータベースに接続するときに、アプリケーションワークロードの種類を宣言します。 このプロパティの値は、ApplicationIntentで設定できます。 Always On 可用性グループに対する SqlClient サポートの詳細については、「SqlClient の高可用性、ディザスター リカバリーのサポート」を参照してください。 |
| ApplicationName |
接続文字列に関連付けられているアプリケーションの名前を取得または設定します。 |
| AsynchronousProcessing |
古い.
Obsolete. この接続文字列を使用して作成された接続で非同期処理が許可されるかどうかを示すブール値を取得または設定します。 |
| AttachDBFilename |
プライマリ データ ファイルの名前を含む文字列を取得または設定します。 これには、アタッチ可能なデータベースの完全なパス名が含まれます。 |
| AttestationProtocol |
構成証明プロトコルの値を取得または設定します。 |
| Authentication |
Microsoft Entraを使用してリソースをAzure SQLするために Connect に使用される認証方法を取得または設定します。 |
| ColumnEncryptionSetting |
接続文字列ビルダーの列暗号化設定を取得または設定します。 |
| CommandTimeout |
コマンド実行の試行を終了してエラーを生成するまでの既定の待機時間 (秒)。 既定値は 30 秒です。 |
| ConnectionReset |
古い.
古い.
Obsolete. 接続プールから描画されたときに接続がリセットされるかどうかを示すブール値を取得または設定します。 |
| ConnectRetryCount |
アイドル状態の接続エラーが発生したことを識別した後に試行された再接続の数。 これは、0 から 255 までの整数である必要があります。 Azure以外のエンドポイントの既定値は 1 です。 Azure SQL エンドポイントの場合、既定値は 2 です。 バージョン 5.x 以降では、Azure SQLサーバーレスエンドポイントまたはオンデマンド エンドポイントの場合、アイドル状態または一時停止中のインスタンスへの接続の成功を向上させるために、既定値は 5 です。 アイドル状態の接続エラー時に再接続を無効にするには、0 に設定します。 許容範囲外の値に設定すると、 ArgumentException がスローされます。 |
| ConnectRetryInterval |
アイドル状態の接続エラーが発生したことを特定した後の各再接続試行の間の時間 (秒単位)。 1 ~ 60 の整数を指定する必要があります。 既定値は 10 秒です。 |
| ConnectTimeout |
試行を終了してエラーを生成する前に、サーバーへの接続を待機する時間 (秒単位) を取得または設定します。 |
| ContextConnection |
古い.
Obsolete. SQL Server へのクライアント/サーバーまたはインプロセス接続を行う必要があるかどうかを示す値を取得または設定します。 |
| CurrentLanguage |
データベース サーバーの警告またはエラー メッセージに使用される言語を取得または設定します。 |
| DataSource |
接続する SQL Server のインスタンスの名前またはネットワーク アドレスを取得または設定します。 |
| EnclaveAttestationUrl |
エンクレーブ ベースの Always Encrypted で使用するエンクレーブ構成証明 URL を取得または設定します。 |
| Encrypt |
バージョン 5.0 以降の SqlConnectionEncryptOption 値、またはクライアントとサーバーの間で送信されるすべてのデータに TLS 暗号化が必要かどうかを示す以前のバージョンの Boolean 値を取得または設定します。 |
| Enlist |
SQL Server接続プールが作成スレッドの現在のトランザクション コンテキストで接続を自動的に参加させるかどうかを示すブール値を取得または設定します。 |
| FailoverPartner |
プライマリ サーバーがダウンしている場合に接続するパートナー サーバーの名前またはアドレスを取得または設定します。 |
| FailoverPartnerSPN |
接続のフェールオーバー パートナーのサービス プリンシパル名 (SPN) を取得または設定します。 |
| HostNameInCertificate |
接続のサーバー証明書を検証するときに使用するホスト名を取得または設定します。 指定しない場合、 |
| IdleTimeout |
接続が破棄されるまでに接続が未使用 (アイドル状態) になる最大時間 (秒単位) を取得または設定します。 既定値は 300 (5 分) です。 |
| InitialCatalog |
接続に関連付けられているデータベースの名前を取得または設定します。 |
| IntegratedSecurity |
接続でユーザー ID とパスワードを指定する ( |
| IPAddressPreference |
TCP 接続を確立するときの IP アドレス ファミリの優先設定を取得または設定します。 |
| IsFixedSize |
SqlConnectionStringBuilderに固定サイズがあるかどうかを示す値を取得します。 |
| Item[String] |
指定したキーに関連付けられている値を取得または設定します。 C# では、このプロパティはインデクサーです。 |
| Keys |
ICollection内のキーを含む SqlConnectionStringBuilder を取得します。 |
| LoadBalanceTimeout |
接続が破棄されるまでの接続プールでの接続の最小時間 (秒単位) を取得または設定します。 |
| MaxPoolSize |
この特定の接続文字列に対して接続プールで許可される接続の最大数を取得または設定します。 |
| MinPoolSize |
この特定の接続文字列に対して接続プールで許可される接続の最小数を取得または設定します。 |
| MultipleActiveResultSets |
true の場合、アプリケーションは複数のアクティブな結果セット (MARS) を維持できます。 false の場合、アプリケーションは、その接続で他のバッチを実行する前に、1 つのバッチからすべての結果セットを処理または取り消す必要があります。 詳細については、「 複数のアクティブな結果セット (MARS)」を参照してください。 |
| MultiSubnetFailover |
アプリケーションが異なるサブネット上の AlwaysOn 可用性グループ (AG) に接続している場合、 |
| NetworkLibrary |
SQL Server への接続を確立するために使用するネットワーク ライブラリの名前を含む文字列を取得または設定します。 |
| PacketSize |
SQL Server のインスタンスとの通信に使用されるネットワーク パケットのサイズをバイト単位で取得または設定します。 |
| Password |
SQL Server アカウントのパスワードを取得または設定します。 |
| PersistSecurityInfo |
パスワードやアクセス トークンなどのセキュリティに依存する情報を、このSqlConnectionStringBuilderで作成された接続の接続文字列の一部として返す必要があるかどうかを示すブール値を取得または設定します。 このプロパティは、アプリケーションが既に開いているデータベース接続からパスワードを読み取る必要がある場合にのみ、 |
| PoolBlockingPeriod |
接続プールのブロック期間の動作。 |
| Pooling |
接続が要求されるたびに接続をプールするか明示的に開くかを示すブール値を取得または設定します。 |
| Replication |
接続を使用してレプリケーションがサポートされているかどうかを示すブール値を取得または設定します。 |
| ServerCertificate |
接続のSQL Server TLS/SSL 証明書と照合する証明書ファイルへのパスを取得または設定します。 受け付けられる証明書の形式は PEM、DER、CER です。 指定した場合、SQL Server証明書は、指定された |
| ServerSPN |
データ ソースのサービス プリンシパル名 (SPN) を取得または設定します。 |
| TransactionBinding |
参加している |
| TransparentNetworkIPResolution |
古い.
.NET Framework では、このキーの値が |
| TrustServerCertificate |
信頼を検証するために証明書チェーンのウォークをバイパスしながらチャネルを暗号化するかどうかを示す値を取得または設定します。 |
| TypeSystemVersion |
アプリケーションで想定される型システムを示す文字列値を取得または設定します。 |
| UserID |
SQL Server に接続するときに使用するユーザー ID を取得または設定します。 |
| UserInstance |
既定の SQL Server Express インスタンスから、呼び出し元のアカウントで実行されているランタイム開始インスタンスに接続をリダイレクトするかどうかを示す値を取得または設定します。 |
| Values |
SqlConnectionStringBuilder内の値を含むICollectionを取得します。 |
| WorkstationID |
SQL Server に接続するワークステーションの名前を取得または設定します。 |
メソッド
| Name | 説明 |
|---|---|
| Clear() |
SqlConnectionStringBuilder インスタンスの内容をクリアします。 |
| ContainsKey(String) |
SqlConnectionStringBuilder に特定のキーが含まれているかどうかを判断します。 |
| Remove(String) |
指定したキーを持つエントリを SqlConnectionStringBuilder インスタンスから削除します。 |
| ShouldSerialize(String) |
指定したキーがこの SqlConnectionStringBuilder インスタンスに存在するかどうかを示します。 |
| TryGetValue(String, Object) |
この SqlConnectionStringBuilder から、指定されたキーに対応する値を取得します。 |