OleDbConnection.ConnectionString プロパティ
アセンブリ: System.Data (system.data.dll 内)

Dim instance As OleDbConnection Dim value As String value = instance.ConnectionString instance.ConnectionString = value
public: virtual property String^ ConnectionString { String^ get () override; void set (String^ value) override; }
/** @property */ public String get_ConnectionString () /** @property */ public void set_ConnectionString (String value)
public override function get ConnectionString () : String public override function set ConnectionString (value : String)
データ ソース名を含む OLE DB プロバイダ接続文字列、および初期接続を確立するために必要なその他のパラメータ。既定値は空の文字列です。


ConnectionString の書式は、OLE DB 接続文字列の書式とほぼ一致していますが、次の例外があります。
-
Provider = value 句が必要です。ただし、.NET Framework OLE 用データ プロバイダでは、OLE DB Provider for ODBC (MSDASQL) をサポートしていないため、Provider = MSDASQL は使用できません。ODBC データ ソースにアクセスするには、System.Data.Odbc 名前空間の OdbcConnection オブジェクトを使用します。
-
ODBC や ADO とは異なり、Persist Security Info を false (既定値) に設定すると、ユーザーが設定した ConnectionString からセキュリティ情報を除いた接続文字列が返されます。Persist Security Info キーワードを true に設定した場合 (お勧めしません) を除き、.NET Framework OLE DB 用データ プロバイダでは、接続文字列のパスワードは永続化されず、返されません。高度なセキュリティ レベルを維持するためには、Persist Security Info を false に設定して、Integrated 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 キーワードを指定しなかった場合、プロバイダは利用可能なローカル サーバーへの接続を試みます。
ConnectionString プロパティを設定できるのは、接続が閉じているときだけです。接続文字列値の多くには、対応する読み取り専用プロパティがあります。接続文字列を設定すると、エラーが検出された場合を除いて、これらのプロパティが更新されます。エラーが発生した場合は、いずれのプロパティも更新されません。OleDbConnection プロパティは、ConnectionString に含まれている設定だけを返します。
閉じた接続に対して ConnectionString をリセットすると、すべての接続文字列値および関連プロパティがリセットされます。パスワードも対象となります。たとえば、Initial Catalog= AdventureWorks を指定した接続文字列を設定した後で、この接続文字列を Provider= SQLOLEDB;Data Source= MySQLServer;IntegratedSecurity=SSPI にリセットすると、Database プロパティは AdventureWorks に設定されません。(接続文字列の Initial Catalog 値は、Database プロパティに対応します)。
プロパティの設定時には、接続文字列に対して予備的な検証が実行されます。Provider、Connect Timeout、Persist Security Info、または OLE DB Services の値が文字列に含まれている場合は、これらの値がチェックされます。アプリケーションが Open メソッドを呼び出したときは、接続文字列が完全に検証されます。接続文字列に無効なプロパティまたはサポートされないプロパティが含まれている場合は、ArgumentException などの実行時例外が発生します。
![]() |
---|
UDL (Universal Data Link) ファイルで OleDbConnection の接続文字列を渡すことも可能ですが、そのような操作は避けてください。UDL ファイルは暗号化されず、接続文字列情報をクリア テキストで公開します。UDL ファイルはアプリケーションにとって外部ファイル ベースのリソースなので、.NET Framework を使用してセキュリティ保護できません。 |
接続文字列の基本的な書式は、一連のキーワード/値のペアをセミコロンで区切った形となります。等号記号 (=) は、各キーワードとその値を結合します。セミコロン、単一引用符文字、または二重引用符文字を含む値を指定するには、二重引用符で値を囲む必要があります。セミコロンと二重引用符の両方が値に含まれている場合は、単一引用符を使用して値を囲むことができます。単一引用符は、値の先頭が二重引用符文字の場合にも使用できます。逆に、値の先頭が単一引用符の場合は、二重引用符を使用できます。単一引用符と二重引用符の両方が値に含まれている場合、値を囲むために使用する引用符文字は、値の中ですべて 2 つずつ使用する必要があります。
文字列値の先頭または末尾の空白を含めるには、単一引用符または二重引用符で値を囲む必要があります。整数値、ブール値、列挙値の先頭または末尾の空白は、引用符で囲んでも無視されます。ただし、リテラル キーワード文字列や文字列値内の空白は、予約済みです。単一引用符または二重引用符は、引用符が値の先頭または末尾の文字でない限り、接続文字列内で区切り文字を付けずに使用できます (たとえば、Data Source= my'Server、または Data Source= my"Server など)。
キーワードまたは値の中で等号記号 (=) を使用する場合は、等号記号を 2 つ記述する必要があります。たとえば、次のような接続文字列がある場合、
キーワードは "key=word" で値は "value" です。
キーワード = 値のペアで特定のキーワードが接続文字列の中に複数回出現する場合、値セットでは最後のペアが使用されます。
![]() |
---|
ユーザー入力に基づいて接続文字列を構築する場合は注意が必要です。たとえば、ダイアログ ボックスからユーザー ID およびパスワード情報を取得し、接続文字列に追加する場合などです。アプリケーションでは、ユーザーが不要な接続文字列パラメータを入力値に埋め込むことができないようにする必要があります。たとえば、ユーザーが、別のデータベースに接続しようとして、パスワードに「validpassword;database= somedb」などと入力できないようにする必要があります。OLE DB 接続に Extended Properties 接続文字列パラメータを使用する場合、ユーザー ID とパスワードを渡さないようにしてください。既定値である Persist Security Info= false は、Extended Properties パラメータには適用されないため、ユーザー ID とパスワードがクリア テキストで格納されてしまわないように (それが可能である場合) するためです。 |

OleDbConnection を作成し、そのプロパティの一部を接続文字列に設定する例を次に示します。
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
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. }
using System; using System.Data; using System.Data.OleDb; class Class1 { static void Main() { string x = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=AdventureWorks;" + "Integrated Security=SSPI"; OpenConnection(x); Console.ReadLine(); } 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. }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からOleDbConnection.ConnectionString プロパティを検索する場合は、下記のリンクをクリックしてください。

- OleDbConnection.ConnectionString プロパティのページへのリンク