OleDbConnection.ConnectionString プロパティ

定義

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

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); };
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String

プロパティ値

String

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

実装

属性

例外

無効な接続文字列の引数が指定されました。または、必要な接続文字列の引数が指定されませんでした。

次の例では、 を OleDbConnection 作成し、そのプロパティの一部を接続文字列に設定します。

static void OpenConnection(string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        try
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",
                connection.ServerVersion, connection.DataSource);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}
Public Sub OpenConnection(ByVal connectionString As String)

    Using connection As New OleDbConnection(connectionString)
        Try
            connection.Open()
            Console.WriteLine("Server Version: {0} DataSource: {1}", _
                connection.ServerVersion, connection.DataSource)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using
End Sub

注釈

は、次の例外を除OLE DB可能な限り接続文字列の形式と一 ConnectionString 致するように設計されています。

  • "Provider = value " 句が必要です。 ただし、"Provider = MSDASQL" は使用できません。.NET Framework Data Provider for OLE DB の OLE DB Provider for ODBC (MSDASQL) はサポートされていません。 ODBC データ ソースにアクセスするには、 名前空間 OdbcConnection にある オブジェクトを使用 System.Data.Odbc します。

  • ODBC または ADO とは異なり、返される接続文字列は、ユーザー セットと同じです。- が (既定値) に設定されている場合、セキュリティ情報 ConnectionString Persist Security Info false を差し引いた値です。 キーワード.NET Framework Data ProviderにOLE DBをに設定しない限り、接続文字列のパスワードは保持または Persist Security Info true 返されません (推奨されません)。 高いレベルのセキュリティを維持するには、 を に設定して キーワードを使用強 Integrated Security Persist Security Info く推奨します false

プロパティを使用 ConnectionString して、さまざまなデータ ソースに接続できます。 次の例は、考えられるいくつかの接続文字列を示しています。

"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"  

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"  

"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"  

キーワードが接続文字列で指定されていない場合、プロバイダーは、使用可能な場合はローカル Data Source サーバーへの接続を試みります。

接続文字列の詳細については、「 で接続文字列キーワードを使用する」をSQL Server Native Client。

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

閉じた接続 ConnectionString で をリセットすると、すべての接続文字列値と関連プロパティがリセットされます。 これにはパスワードが含まれます。 たとえば、"Initial Catalog= AdventureWorks" を含む接続文字列を設定し、接続文字列を "Provider= SQLOLEDB;Data Source= MySQLServer;IntegratedSecurity=SSPI" にリセットした場合、プロパティは AdventureWorks に設定されなくなりました。 Database (接続文字列の初期カタログ値は、 プロパティに対応 Database します)。

このプロパティが設定されていると、接続文字列の予備検証が実行されます。 、、、または ProviderConnect TimeoutPersist Security Info が文字列に OLE DB Services 含まれている場合は、これらの値がチェックされます。 アプリケーションが メソッドを呼 Open び出す場合、接続文字列は完全に検証されます。 接続文字列に無効なプロパティまたはサポートされていないプロパティが含まれている場合は、 などの実行時例外 ArgumentException が生成されます。

注意事項

ユニバーサル データ リンク (UDL) ファイルで の接続情報を指定できます。ただし、これは OleDbConnection 避ける必要があります。 UDL ファイルは暗号化されません。また、クリア テキストで接続文字列情報を公開します。 UDL ファイルは、アプリケーションにとって外部ファイルをベースにしたリソースであるため、.NET Framework でセキュリティ保護できません。

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

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

キーワードまたは値に等号 (=) を含めるには、その前に別の等号を付けなければならない。 たとえば、仮定の接続文字列では、

"key==word=value"  

キーワードは "key=word" で、値は "value" です。

keyword=value ペア内の特定のキーワードが接続文字列で複数回出現する場合、最後に出現する箇所が値セットで使用されます。

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

注意事項

ユーザー入力に基づいて接続文字列を作成する場合は注意が必要です。たとえば、ダイアログ ボックスからユーザー ID とパスワードの情報を取得して接続文字列に追加する場合などです。 アプリケーションでは、別のデータベースにアタッチしようとしてパスワードを "validpassword;database= somedb" として入力するなど、ユーザーがこれらの値に追加の接続文字列パラメーターを埋め込めない必要があります。 OLE DB 接続に拡張プロパティ接続文字列パラメーターを使用する場合は、ユーザー ID とパスワードをクリア テキストに保存しないようにする必要があります。また、 の既定の設定は パラメーターに影響を与えないので、ユーザー ID とパスワードを渡すのを避ける必要があります。 Persist Security Info= false Extended Properties

適用対象

こちらもご覧ください