次の方法で共有


OdbcConnection.ConnectionString プロパティ

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

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

Public Overridable Property ConnectionString As String  Implements _   IDbConnection.ConnectionString
[C#]
public virtual string ConnectionString {get; set;}
[C++]
public: __property virtual String* get_ConnectionString();public: __property virtual void set_ConnectionString(String*);
[JScript]
public function get ConnectionString() : String;public function set ConnectionString(String);

プロパティ値

データ ソース名など、初期接続を確立するために必要な設定を含む ODBC ドライバ接続文字列。既定値は空の文字列 ("") です。最大の長さは、1024 文字です。

実装

IDbConnection.ConnectionString

解説

ConnectionString プロパティは、可能な限り ODBC 接続文字列の書式と一致するように設計されています。 ConnectionString は、接続が閉じているときにだけ設定できます。設定が完了すると、そのまま Driver Manager および基になるドライバに渡されます。そのため、 ConnectionString の構文は、Driver Manager および基になるドライバがサポートしている構文と完全に一致している必要があります。

ConnectionString プロパティを使用すると、ODBC データ ソース名 (DSN) など、さまざまなデータ ソースに接続できます。接続文字列の例を次に示します。

"Driver={SQL Server};Server=MyServer;Trusted_Connection=yes;Database=Northwind;"
"Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;Persist Security Info=False;Trusted_Connection=yes"
"Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\bin\nwind.mdb"
"Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\bin\book1.xls"
"Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\bin"
"DSN=dsnname"

メモ   .NET Framework Data Provider for ODBC では、他の .NET Framework データ プロバイダで使用可能な Persist Security Info キーワードを利用できません。ただし、 ConnectionString プロパティは、Persist Security Info を false に設定した場合と同様に機能します。そのため、接続が開いているときに ConnectionString プロパティからパスワードを取得することはできません。開いている OdbcConnection オブジェクトから ConnectionString プロパティを読み取った場合、パスワードを除いた接続文字列が返されます。この動作は、変更できません。そのため、アプリケーションでパスワードが必要な場合は、 Open を呼び出す前にパスワードを別に格納してください。

接続文字列で指定する設定の多くには、それぞれに対応する読み取り専用プロパティが存在します (DataSource プロパティに対応する SERVER=MyServer など)。エラーが検出された場合を除いて、これらのプロパティは、接続が開かれた後にすべて更新されます。エラーが発生した場合は、いずれのプロパティも更新されません。 OdbcConnection のプロパティ (Database など) は、既定の設定、または ConnectionString で指定されている設定だけを返します。

Microsoft .NET Framework Version 1.0 では、アプリケーションが Open メソッドを呼び出すまで、接続文字列は検証されません。接続文字列の検証は、基になる ODBC ドライバが行います。接続文字列に無効なプロパティ、またはサポートされていないプロパティが含まれている場合は、実行時にドライバで OdbcException が発生する可能性があります。

ただし、.NET Framework Version 1.1 では、 ConnectionString プロパティを設定した直後に、接続文字列に対していくつかの基本的な検証が行われます。このとき、データ プロバイダは、接続文字列が keyword=value;... の書式で設定されているかどうかを検証しますが、キーワードや値が有効かどうかは検証しません。残りの検証は、アプリケーションが Open メソッドを呼び出したときに、基になる ODBC ドライバが実行します。

ODBC 接続文字列の構文を次に示します。

connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=attribute-value | DRIVER=[{]attribute-value[}]
attribute-keyword ::= DSN | UID | PWD
 | driver-defined-attribute-keyword
attribute-value ::= character-string
driver-defined-attribute-keyword ::= identifier

character-string は 0 文字以上の文字、 identifier は、1 文字以上の文字です。 attribute-keyword の大文字と小文字は区別されません。 attribute-value の大文字と小文字は区別されることがあります。また、空白だけによって構成される DSN キーワードを使用することはできません。

接続文字列と初期化ファイルの文法により、 []{}(),;?*=!@ 文字を含むキーワード値および属性値は中かっこで囲む必要があります。DSN キーワードの値は、空白だけで構成することはできず、空白で開始することもできません。システム情報の文法により、キーワードおよびデータ ソース名に円記号 (\) を含めることはできません。

属性にセミコロン (;) が含まれていない限り、アプリケーションで DRIVER キーワードの後の属性値を中かっこで囲む必要はありません。属性にセミコロンが含まれている場合は、中かっこ (;) が必要です。ドライバが受信した属性値に中かっこが含まれている場合、ドライバは中かっこを削除せず、中かっこは返される接続文字列の一部になります。

[]{}(),;?*=!@ 文字のいずれかを含み、中かっこ ({}) で囲まれている DSN または接続文字列値は、そのままドライバに渡されます。これらの文字をキーワードで使用している場合、Driver Manager は、DSN ファイルの処理時にエラーを返しますが、その接続文字列を通常の接続文字列としてドライバに渡します。キーワード値の中に中かっこを使用しないでください。

接続文字列には、ドライバで定義されているキーワードをいくつでも使用できます。DRIVER キーワードはシステムの情報を使用しないため、ドライバが接続文字列の情報だけを使用してデータ ソースに接続できるように、ドライバで十分なキーワードを定義する必要があります。ドライバで、データ ソースに接続するために必要なキーワードを定義します。

接続文字列で 1 つのキーワードが繰り返して使用されている場合、ドライバは、そのキーワードが最初に出現したときに関連付けられた値を使用します。DSN キーワードと DRIVER キーワードが同じ接続文字列の中に存在する場合、Driver Manager およびドライバは、先に出現した方を使用します。

キーワードまたは値の中で等号記号 (=) を使用する場合は、等号記号を 2 つ記述する必要があります。たとえば、次のような接続文字列がある場合、

"key==word=value"

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

メモ   ODBC ドライバが 1024 文字以上の接続文字列をサポートしている場合は、最大長の制限を超えたデータ ソース名 (DSN) を使用できます。

使用例

[Visual Basic, C#, C++] OdbcConnection を作成し、そのプロパティの一部を接続文字列に設定する例を次に示します。

 
Public Sub CreateOdbcConnection()
    Dim myConnString As String = _
       "DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;"
    Dim myConnection As New OdbcConnection(myConnString)
    myConnection.Open()
    MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _
       + ControlChars.NewLine + "DataSource: " + myConnection.DataSource)
    myConnection.Close()
End Sub

[C#] 
public void CreateOdbcConnection() 
{
   string myConnString = "DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;";
   OdbcConnection myConnection = new OdbcConnection(myConnString);
   myConnection.Open();
   MessageBox.Show("ServerVersion: " + myConnection.ServerVersion
      + "\nDataSource: " + myConnection.DataSource);
   myConnection.Close();
}

[C++] 
public:
    void CreateOdbcConnection()
    {
        String* myConnString = S"DRIVER= {SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;";
        OdbcConnection* myConnection = new OdbcConnection(myConnString);
        myConnection->Open();
        MessageBox::Show(String::Concat(S"ServerVersion: ", myConnection->ServerVersion, S"\nDataSource: ", myConnection->DataSource));
        myConnection->Close();
    };

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

OdbcConnection クラス | OdbcConnection メンバ | System.Data.Odbc 名前空間