SqlConnection.ConnectionString プロパティ

定義

SQL Server データベースを開くために使用する文字列を取得または設定します。

public:
 virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
 property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("SqlConnection_ConnectionString")]
public string ConnectionString { get; set; }
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("SqlConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String

プロパティ値

ソース データベース名を含む接続文字列、および初期接続を確立するために必要なその他のパラメーター。 既定値は空の文字列です。

実装

属性

例外

無効な接続文字列引数が指定されたか、必要な接続文字列引数が指定されていません。

次の例では、 を SqlConnection 作成し、接続を ConnectionString 開く前に プロパティを設定します。

private static void OpenSqlConnection()
{
    string connectionString = GetConnectionString();

    using (SqlConnection connection = new SqlConnection())
    {
        connection.ConnectionString = connectionString;

        connection.Open();

        Console.WriteLine("State: {0}", connection.State);
        Console.WriteLine("ConnectionString: {0}",
            connection.ConnectionString);
    }
}

static private string GetConnectionString()
{
    // To avoid storing the connection string in your code,
    // you can retrieve it from a configuration file.
    return "Data Source=MSSQL1;Initial Catalog=AdventureWorks;"
        + "Integrated Security=true;";
}
Private Sub OpenSqlConnection()
    Dim connectionString As String = GetConnectionString()

    Using connection As New SqlConnection()

        connection.ConnectionString = connectionString

        connection.Open()

        Console.WriteLine("State: {0}", connection.State)
        Console.WriteLine("ConnectionString: {0}", _
            connection.ConnectionString)
    End Using
End Sub

Private Function GetConnectionString() As String
    ' To avoid storing the connection string in your code,  
    ' you can retrieve it from a configuration file.
    Return "Data Source=MSSQL1;Database=AdventureWorks;" _
      & "Integrated Security=true;"
End Function

注釈

ConnectionStringは OLE DB 接続文字列に似ていますが、同じではありません。 OLE DB または ADO とは異なり、返される接続文字列は、ユーザー セットConnectionStringと同じです。[セキュリティ情報の永続化] の値が (既定値) に設定されている場合は、セキュリティ情報をfalse引いた値です。 [セキュリティ情報trueの永続化] を に設定しない限り、SQL Server用の.NET Framework データ プロバイダーは、接続文字列でパスワードを保持したり、返したりしません。

プロパティを ConnectionString 使用してデータベースに接続できます。 次の例は、一般的な接続文字列を示しています。

"Persist Security Info=False;Integrated Security=true;Initial Catalog=Northwind;server=(local)"

実行時に有効な接続文字列を作成するには、 new SqlConnectionStringBuilder を使用します。 詳細については、「接続文字列ビルダー」をご覧ください。

プロパティは ConnectionString 、接続が閉じている場合にのみ設定できます。 接続文字列の値の多くに、対応する読み取り専用プロパティがあります。 接続文字列が設定されると、エラーが検出された場合を除き、これらのプロパティが更新されます。 この場合、どのプロパティも更新されません。 SqlConnection プロパティは、 に ConnectionString含まれている設定のみを返します。

ローカル コンピューターに接続するには、サーバーに "(local)" を指定します。 サーバー名が指定されていない場合、ローカル コンピューター上の既定のインスタンスへの接続が試行されます。

閉じた接続で をConnectionStringリセットすると、パスワードを含むすべての接続文字列値 (および関連プロパティ) がリセットされます。 たとえば、"Database= AdventureWorks" を含む接続文字列を設定し、接続文字列を "Data Source=myserver" にリセットするとします。Integrated Security=true"、Databaseプロパティは "AdventureWorks" に設定されなくなりました。

接続文字列は、設定された直後に解析されます。 構文の解析時にエラーが見つかった場合は、 などの ArgumentExceptionランタイム例外が生成されます。 その他のエラーは、接続を開こうとした場合にのみ見つかります。

接続文字列の基本形式には、セミコロンで区切られた一連のキーワード (keyword)/値ペアが含まれます。 それぞれのキーワードと値の関連付けには、等号 (=) が使用されます。 セミコロン、単一引用符、または二重引用符を含む値を含めるには、値を二重引用符で囲む必要があります。 値にセミコロンと二重引用符の両方が含まれている場合、値は単一引用符で囲むことができます。 単一引用符は、値が二重引用符で始まる場合にも役立ちます。 逆に、値が単一引用符で始まる場合は、二重引用符を使用できます。 値に単一引用符と二重引用符の両方が含まれている場合、値を囲むのに使用される引用符文字は、値内で発生するたびに 2 倍にする必要があります。

文字列値に前後のスペースを含めるには、値を単一引用符または二重引用符で囲む必要があります。 整数、ブール値、または列挙値の前後のスペースは、引用符で囲まれていても無視されます。 ただし、文字列リテラルキーワード (keyword)または値内のスペースは保持されます。 引用符文字が値の最初または最後の文字でない限り、区切り記号 (Data Source= my'Server や Data Source= my"Server など) を使用せずに、接続文字列内で単一引用符または二重引用符を使用できます。

キーワードでは大文字と小文字は区別されません。

次の表に、 内のキーワード (keyword)値の有効な名前をConnectionString示します。

Keyword Default 説明
Addr N/A データ ソースのシノニム。
Address 該当なし データ ソースのシノニム。
アプリ 該当なし アプリケーション名のシノニム。
アプリケーション名 該当なし アプリケーションの名前。アプリケーション名が指定されていない場合は '.NET SQLClient データ プロバイダー' です。

アプリケーション名は 128 文字以下にすることができます。
ApplicationIntent ReadWrite アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 設定可能な値は ReadOnly および ReadWrite です。 次に例を示します。

ApplicationIntent=ReadOnly

Always On 可用性グループの SqlClient サポートの詳細については、「高可用性障害復旧のための SqlClient サポート」をご覧ください。
Asynchronous Processing

- または -

Async
'false' の場合 true、非同期操作のサポートが有効になります。 認識される値は truefalseyes および no です。

このプロパティは、.NET Framework 4.5 以降では無視されます。 非同期プログラミングの SqlClient サポートの詳細については、「 非同期プログラミング」を参照してください。
AttachDBFilename

- または -

Extended Properties

- または -

初期ファイル名
該当なし アタッチ可能なデータベースの完全なパス名を含む、プライマリ データベース ファイルの名前。 AttachDBFilename は、.mdf 拡張子を持つプライマリ データ ファイルに対してのみサポートされます。

接続文字列で AttachDBFileName キーの値を指定すると、データベースがアタッチされ、接続の既定のデータベースになります。

このキーが指定されておらず、データベースが以前にアタッチされていた場合、データベースは再アタッチされません。 以前に接続されたデータベースは、接続の既定のデータベースとして使用されます。

このキーが AttachDBFileName キーと共に指定されている場合、このキーの値がエイリアスとして使用されます。 ただし、別のアタッチされたデータベースで名前が既に使用されている場合、接続は失敗します。

パスは、DataDirectory 置換文字列を使用して絶対パスまたは相対パスにすることができます。 DataDirectory を使用する場合は、置換文字列が指すディレクトリのサブディレクトリ内にデータベース ファイルが存在する必要があります。 メモ: リモート サーバー、HTTP、UNC パス名はサポートされていません。

データベース名は、次のように、キーワード (keyword) 'database' (またはそのエイリアスのいずれか) で指定する必要があります。

"AttachDbFileName=&#124;DataDirectory&#124;\data\YourDB.mdf;integrated security=true;database=YourDatabase"

データ ファイルと同じディレクトリにログ ファイルが存在する場合、プライマリ データ ファイルのアタッチ時に 'database' キーワードが使用されると、エラーが生成されます。 この場合は、ログ ファイルを削除してください。 データベースがアタッチされると、物理パスに基づいて、新しいログ ファイルが自動的に生成されます。
認証 該当なし Azure Active Directory 認証を使用したSQL Databaseへの接続に使用される認証方法。

有効な値は次のとおりです。

Active Directory 統合、Active Directory パスワード、Sql パスワード。
列の暗号化の設定 該当なし 接続のAlways Encrypted機能を有効または無効にします。
Connect Timeout

- または -

[接続タイムアウト]

- または -

タイムアウト
15 試行を終了してエラーを生成する前に、サーバーへの接続を待機する時間 (秒単位)。

有効な値は 0 以上で、2147483647以下です。

Azure SQL データベースへの接続を開くときは、接続タイムアウトを 30 秒に設定します。
接続の有効期間

- または -

Load Balance Timeout
0 接続がプールに返された時点で、その接続の作成時刻と現在の時刻を比較し、その時間の長さ (秒) が Connection Lifetime で指定した値を超えている場合は、その接続が破棄されます。 これは、クラスター構成を採用している状況で、実行中のサーバーと、オンラインになったばかりのサーバーの間での、負荷を強制的に分散するのに便利です。

値が 0 の場合、プールされた接続の最大接続タイムアウトが発生します。
ConnectRetryCount 1 クライアントがアイドル状態の接続エラーを識別した後の再接続試行回数を制御します。 有効な値は 0 から 255 です。 既定値は 1 です。 0 は、再接続を試みないことを意味します (接続の回復性を無効にします)。

接続の回復性の詳細については、「接続 の再試行の .NET SqlConnection パラメーター 」および 「技術記事 - アイドル接続の回復性」を参照してください。
ConnectRetryInterval 10 各接続再試行の間隔 (ConnectRetryCount) を指定します。 有効な値は、最初の再接続の試行後に適用される 1 ~ 60 秒 (既定値は 10) です。 切断された接続が検出されると、クライアントは直ちに再接続を試みます。これは最初の再接続試行であり、ConnectRetryCount が 0 より大きい場合にのみ発生します。 最初の再接続試行が失敗し、ConnectRetryCount が 1 より大きい場合、クライアントは ConnectRetryInterval を待機して、2 回目以降の再接続試行を試行します。

接続の回復性の詳細については、「接続 の再試行の .NET SqlConnection パラメーター 」および 「技術記事 - アイドル接続の回復性」を参照してください。
コンテキスト接続 'false' trueSQL Serverへのインプロセス接続を確立する必要がある場合は 。
[現在の言語]

- または -

Language
該当なし データベース サーバーの警告またはエラー メッセージに使用する言語を設定します。

言語名は 128 文字以下にすることができます。
Data Source

- または -

サーバー

- または -

Address

- または -

Addr

- または -

[ネットワーク アドレス]
該当なし 接続するSQL Serverのインスタンスの名前またはネットワーク アドレス。 ポート番号は、サーバー名の後に指定できます。

server=tcp:servername, portnumber

ローカル インスタンスを指定する場合は、常に (ローカル) を使用します。 プロトコルを強制するには、次のいずれかのプレフィックスを追加します。

np:(local), tcp:(local), lpc:(local)

.NET Framework 4.5 以降では、次のように LocalDB データベースに接続することもできます。

server=(localdb)\\myInstance

LocalDB の詳細については、「 SqlClient Support for LocalDB」を参照してください。

データ ソース では、TCP 形式または名前付きパイプ形式を使用する必要があります。

TCP 形式は次のとおりです。

- tcp:<host name>\<instance name>
- tcp:<host name,TCP></IP ポート番号>

TCP 形式はプレフィックス "tcp:" で始まり、ホスト名とインスタンス名で指定されたデータベース インスタンスの後に続く必要があります。 この形式は、Azure SQL Database に接続する場合には適用されません。 プロトコルが指定されていない場合、Azure SQL Database への接続に対して TCP が自動的に選択されます。

ホスト名は、次のいずれかの方法で指定する必要があります。

- NetBIOSName
- IPv4Address
- IPv6Address

インスタンス名は、データベース インスタンスがホストされている特定の TCP/IP ポート番号に解決するために使用されます。 または、TCP/IP ポート番号を直接指定することもできます。 インスタンス名とポート番号の両方が存在しない場合は、既定のデータベース インスタンスが使用されます。

名前付きパイプの形式は次のとおりです。

- np:\\<host name>\pipe\<pipe name>

名前付きパイプの形式は、プレフィックス "np:" で始まり、その後に名前付きパイプ名が続く必要があります。

ホスト名は、次のいずれかの方法で指定する必要があります。

- NetBIOSName
- IPv4Address
- IPv6Address

パイプ名は、.NET Framework アプリケーションが接続されるデータベース インスタンスを識別するために使用されます。

ネットワーク キーの値が指定されている場合は、プレフィックス "tcp:" と "np:" を指定しないでください。 メモ:共有メモリの代わりに TCP を強制的に使用するには、tcp: のプレフィックスを接続文字列のサーバー名に付けるか、localhost を使用します。
Encrypt 'false' の場合true、SQL Serverサーバーに証明書がインストールされている場合、クライアントとサーバーの間で送信されるすべてのデータに SSL 暗号化が使用されます。 認識される値は truefalseyes および no です。 詳細については、「接続文字列の構文」を参照してください。

.NET Framework 4.5 以降では、 が false で Encrypt true の場合TrustServerCertificate、SQL Server SSL 証明書のサーバー名 (または IP アドレス) は、接続文字列で指定されたサーバー名 (または IP アドレス) と完全に一致している必要があります。 それ以外の場合、接続試行は失敗します。
Enlist 'true' trueは、SQL Server接続プーラーが作成スレッドの現在のトランザクション コンテキストで接続を自動的に参加することを示します。
Failover Partner 該当なし データベース ミラーリングが構成されているフェールオーバー パートナー サーバーの名前。

このキーの値が "" の場合は、 初期カタログ が存在し、その値を "" にすることはできません。

サーバー名は 128 文字以下にすることができます。

フェールオーバー パートナーを指定したが、フェールオーバー パートナー サーバーがデータベース ミラーリング用に構成されておらず、プライマリ サーバー (サーバー キーワード (keyword)で指定) が使用できない場合、接続は失敗します。

フェールオーバー パートナーを指定し、プライマリ サーバーがデータベース ミラーリング用に構成されていない場合、プライマリ サーバー (サーバー キーワード (keyword)で指定) への接続は、プライマリ サーバーが使用可能な場合に成功します。
Initial Catalog

- または -

データベース
該当なし データベースの名前。

データベース名は 128 文字以下にすることができます。
Integrated Security

- または -

Trusted_Connection
'false' の場合 false、接続でユーザー ID とパスワードが指定されます。 の場合 true、現在の Windows アカウントの資格情報が認証に使用されます。

認識される値は、、、、、および sspi (強くお勧めします) です。これは と同じですtruenoyesfalsetrue

ユーザー ID とパスワードを指定し、統合セキュリティが true に設定されている場合、ユーザー ID とパスワードは無視され、統合セキュリティが使用されます。

SqlCredentialは、SQL Server認証 (Integrated Security=false) を使用する接続の資格情報を指定する、より安全な方法です。
Max Pool Size 100 プールで許可される接続の最大数。

有効な値は 1 以上です。 最小プール サイズより小さい値を指定すると、エラーが発生します。
Min Pool Size 0 プールで許可される接続の最小数。

有効な値は 0 以上です。 このフィールドのゼロ (0) は、最初に最小接続が開かないことを意味します。

最大プール サイズを超える値を指定すると、エラーが発生します。
MultipleActiveResultSets 'false' の場合 true、アプリケーションは複数のアクティブな結果セット (MARS) を保持できます。 の場合 false、アプリケーションは、その接続で他のバッチを実行する前に、1 つのバッチからすべての結果セットを処理または取り消す必要があります。

認識される値は truefalse です。

詳細については、「 複数のアクティブな結果セット (MARS)」を参照してください。
MultiSubnetFailover false SQL Server 2012 以降の可用性グループまたはSQL Server 2012 (またはそれ以降) フェールオーバー クラスター インスタンスの可用性グループ リスナーに接続する場合は、常に を指定multiSubnetFailover=Trueします。 multiSubnetFailover=True は SqlClient を構成して、(現在) アクティブなサーバーの検出と接続を高速化します。 指定できる値は、 YesNoTrueFalse または 1 です 0。 次に例を示します。

MultiSubnetFailover=True

既定値は、False です。 Always On AG に対する SqlClient のサポートの詳細については、「SqlClient での高可用性、ディザスター リカバリーのサポート」を参照してください。
Network Library

- または -

ネットワーク

- または -

Net
該当なし SQL Serverのインスタンスへの接続を確立するために使用されるネットワーク ライブラリ。 サポートされている値は次のとおりです。

dbnmpntw (名前付きパイプ)

dbmsrpcn (Multiprotocol、Windows RPC)

dbmsadsn (Apple Talk)

dbmsgnet (VIA)

dbmslpcn (共有メモリ)

dbmsspxn (IPX/SPX)

dbmssocn (TCP/IP)

Dbmsvinn (バンヤン ヴァイン)

接続先のシステムに、対応するネットワーク DLL がインストールされている必要があります。 ネットワークを指定せず、ローカル サーバー ("." や "(local)" など) を使用する場合は、共有メモリが使用されます。 次の例では、ネットワーク ライブラリが Win32 Winsock TCP/IP (dbmssocn) で、使用ポートは 1433 です。

Network Library=dbmssocn;Data Source=000.000.000.000,1433;
Packet Size 8000 SQL Serverのインスタンスとの通信に使用されるネットワーク パケットのサイズ (バイト単位)。

パケット サイズは 512 以上、32768 以下にすることができます。
Password

- または -

PWD
該当なし SQL Server アカウントのログオン時のパスワード。 推奨されません。 高レベルのセキュリティを維持するには、代わりに または Trusted_Connection キーワード (keyword)をIntegrated Security使用することを強くお勧めします。 SqlCredentialは、SQL Server認証を使用する接続の資格情報を指定する、より安全な方法です。

パスワードは 128 文字以下にする必要があります。
Persist Security Info

- または -

PersistSecurityInfo
'false' または nofalse設定すると (強くお勧めします)、接続が開いているか、開いている状態になった場合、パスワードなどのセキュリティに依存する情報は接続の一部として返されません。 接続文字列をリセットすると、パスワードを含むすべての接続文字列値がリセットされます。 認識される値は truefalseyes および no です。
PoolBlockingPeriod 自動 接続プールのブロック期間の動作を設定します。 詳細については、PoolBlockingPeriod プロパティを参照してください。
Pooling 'true' このキーの値が true に設定されている場合、アプリケーションによって閉じられると、新しく作成された接続がプールに追加されます。 次に同じ接続を開こうとすると、その接続がプールから描画されます。

Connectionsは、同じ接続文字列がある場合は同じと見なされます。 接続によって接続文字列が異なります。

このキーの値には、"true"、"false"、"yes"、または "no" を指定できます。
レプリケーション 'false' true 接続を使用してレプリケーションがサポートされている場合は 。
Transaction Binding Implicit Unbind 参加している System.Transactions トランザクションとの接続の関連付けを制御します。

次のいずれかの値になります。

Transaction Binding=Implicit Unbind;

Transaction Binding=Explicit Unbind;

暗黙的なバインド解除により、接続は終了時にトランザクションからデタッチされます。 デタッチ後、接続に対する追加の要求は、自動コミット モードで実行されます。 トランザクションがアクティブである間に要求が実行されても、System.Transactions.Transaction.Current プロパティの確認は行われません。 トランザクションの終了後、追加の要求は、自動コミット モードで実行されます。

最後のコマンドが完了する前にシステムが (using ブロックのスコープ内で) トランザクションを終了すると、 がスロー InvalidOperationExceptionされます。

Explicit Unbind を使用すると、接続が閉じられるか、明示的 SqlConnection.TransactionEnlist(null) な が呼び出されるまで、接続はトランザクションにアタッチされたままになります。 .NET Framework 4 以降では、暗黙的なバインド解除を変更すると、明示的なバインド解除が廃止されました。 InvalidOperationException が登録済みのトランザクションではない場合および登録済みのトランザクションがアクティブではない場合は、Transaction.Current がスローされます。
TransparentNetworkIPResolution 説明を参照してください。 このキーの値を true に設定すると、特定の DNS エントリのすべての IP アドレスを取得し、リストの最初の IP アドレスで接続を試行するようアプリケーションに要求します。 0.5 秒以内に接続が確立されない場合、アプリケーションは他のすべての IP アドレスへの接続を同時に試行します。 最初の応答を受信すると、アプリケーションは応答した IP アドレスで接続を確立します。

キーが MultiSubnetFailovertrueTransparentNetworkIPResolution設定されている場合、 は無視されます。

キーが Failover Partner 設定されている場合、 TransparentNetworkIPResolution は無視されます。

このキーの値は、falseyes、または noであるtrue必要があります。

yes 値は、 の値 trueと同じように扱われます。

no 値は、 の値 falseと同じように扱われます。

既定値は次のとおりです。

  • false いつ:

    • データ ソースがで終わる Azure SQL Database への接続:

      • .database.chinacloudapi.cn
      • .database.usgovcloudapi.net
      • .database.cloudapi.de
      • .database.windows.net
    • Authentication が 'Active Directory パスワード' または 'Active Directory 統合' です
  • 他のすべての場合は true
TrustServerCertificate 'false' true設定すると、信頼を検証するために証明書チェーンのウォークをバイパスするときに、SSL を使用してチャネルを暗号化します。 TrustServerCertificate が に設定され、Encrypt が にtruefalse設定されている場合、チャネルは暗号化されません。 認識される値は truefalseyes および no です。 詳細については、「接続文字列の構文」を参照してください。
システム バージョンの種類 該当なし アプリケーションで想定される型システムを示す文字列値。 クライアント アプリケーションで利用可能な機能は、SQL Server のバージョンとデータベースの互換性レベルに依存します。 使用されている SQL Server のバージョンが、クライアント アプリケーションで想定されているものと異なる場合、アプリケーションが正常に動作しない可能性がありますが、型システムのバージョンを明示的に設定することでその問題を防ぐことができます。 メモ:SQL Serverでインプロセスを実行する共通言語ランタイム (CLR) コードでは、型システム バージョンを設定できません。 詳細については、「共通言語ランタイム統合SQL Server」を参照してください。

次のいずれかの値になります。

Type System Version=SQL Server 2012;

Type System Version=SQL Server 2008;

Type System Version=SQL Server 2005;

Type System Version=Latest;

Type System Version=SQL Server 2012; は、アプリケーションにバージョン 11.0.0.0 の Microsoft.SqlServer.Types.dll が必要であることを指定します。 その他 Type System Version の設定では、バージョン 10.0.0.0 の Microsoft.SqlServer.Types.dll が必要です。

Latest は互換性のために残されていますが、使用しないでください。 LatestType System Version=SQL Server 2008; に相当します。
User ID

- または -

UID

- または -

User
該当なし SQL Server ログイン アカウント。 推奨されません。 高レベルのセキュリティを維持するために、代わりに または Trusted_Connection キーワードをIntegrated Security使用することを強くお勧めします。 SqlCredentialは、SQL Server認証を使用する接続の資格情報を指定する、より安全な方法です。

ユーザー ID は 128 文字以下である必要があります。
User Instance 'false' 既定の SQL Server Express インスタンスから、呼び出し元のアカウントで実行されているランタイム開始インスタンスに接続をリダイレクトするかどうかを示す 値。
[ワークステーション ID]

- または -

WSID
ローカル コンピューター名 SQL Serverに接続しているワークステーションの名前。

ID は 128 文字以下にする必要があります。

次の一覧には、 内の接続プール値の有効な名前が ConnectionString含まれています。 詳しくは、「SQL Server の接続プール (ADO.NET)」をご覧ください。

  • 接続の有効期間 (または負荷分散タイムアウト)

  • Enlist

  • Max Pool Size

  • Min Pool Size

  • Pooling

ブール値を必要とするキーワード (keyword)値または接続プール値を設定する場合は、'true' ではなく 'yes' を使用し、'false' の代わりに 'no' を使用できます。 整数値は文字列として表されます。

注意

.NET Framework データ プロバイダー for SQL Serverは、独自のプロトコルを使用してSQL Serverと通信します。 そのため、ODBC レイヤーを追加しないため、SQL Serverに接続するときに ODBC データ ソース名 (DSN) を使用することはできません。

注意

.NET Framework Data Provider for SQL Serverでは、ユニバーサル データ リンク (UDL) ファイルはサポートされていません。

注意事項

このリリースでは、ユーザー入力に基づいて接続文字列を作成する場合 (たとえば、ダイアログ ボックスからユーザー ID とパスワード情報を取得し、接続文字列に追加する場合) は注意が必要です。 アプリケーションでは、ユーザーがこれらの値に追加の接続文字列 パラメーターを埋め込むことができないようにする必要があります (たとえば、パスワードを "validpassword;database=somedb" を使用して、別のデータベースにアタッチしようとしています。 ユーザー入力に基づいて接続文字列を作成する必要がある場合は、新しい SqlConnectionStringBuilderを使用します。これにより、接続文字列が検証され、この問題を解決するのに役立ちます。 詳細については、「 接続文字列ビルダー 」を参照してください。

適用対象

こちらもご覧ください