次の方法で共有


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

プロパティ値

データ ソース名を含む 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

注釈

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

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

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

プロパティを 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 接続文字列でキーワード (keyword)が指定されていない場合、プロバイダーはローカル サーバーに接続しようとします (使用可能な場合)。

接続文字列の詳細については、「SQL Server Native Clientでの接続文字列キーワードの使用」を参照してください。

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

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

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

注意事項

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

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

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

キーワード (keyword)または値に等号 (=) を含めるには、その前に別の等号を付ける必要があります。 たとえば、仮定の接続文字列

"key==word=value"

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

キーワード (keyword)=値ペア内の特定のキーワード (keyword)が接続文字列で複数回発生した場合は、値セットで最後にリストされた出現が使用されます。

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

注意事項

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

適用対象

こちらもご覧ください