SqlConnection.ConnectionString プロパティ
SQL Server データベースを開くために使用する文字列を取得または設定します。
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);
プロパティ値
ソース データベース名を含む接続文字列、および初期接続を確立するために必要なその他のパラメータ。既定値は空の文字列です。
実装
IDbConnection.ConnectionString
例外
例外の種類 | 条件 |
---|---|
ArgumentException | 無効な接続文字列の引数が指定されました。または、必要な接続文字列の引数が指定されませんでした。 |
解説
ConnectionString は、OLE DB 接続文字列とほぼ同じですが、異なる点もあります。OLE DB や ADO とは異なり、Persist Security Info 値を false (既定値) に設定すると、ユーザーが設定した ConnectionString からセキュリティ情報を除いた接続文字列が返されます。Persist Security Info を true に設定した場合を除き、.NET Framework Data Provider for SQL Server では、接続文字列のパスワードは永続化されず、返されません。
ConnectionString プロパティを使用して、データベースに接続できます。一般的な接続文字列の例を次に示します。
"Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer"
ConnectionString プロパティを設定できるのは、接続が閉じているときだけです。接続文字列値の多くには、対応する読み取り専用プロパティがあります。接続文字列を設定すると、エラーが検出された場合を除いて、これらのプロパティがすべて更新されます。エラーが発生した場合は、いずれのプロパティも更新されません。 SqlConnection プロパティは、 ConnectionString に含まれている設定だけを返します。
ローカル コンピュータに接続するには、サーバーとして (local) を指定します。サーバーは常に指定する必要があります。
閉じた接続に対して ConnectionString をリセットすると、パスワードを含むすべての接続文字列値および関連プロパティがリセットされます。たとえば、Database= northwind を指定した接続文字列を設定した後で、この文字列を Data Source=myserver;Integrated Security=SSPI にリセットすると、 Database プロパティに northwind は設定されません。
接続文字列は、設定した直後に解析されます。解析中に構文のエラーが検出された場合は、 ArgumentException などのランタイム例外が生成されます。その他のエラーは、接続を開くときにだけ検出されます。
接続文字列の基本的な書式は、一連のキーワード/値のペアをセミコロンで区切った形となります。等号記号 (=) は、各キーワードとその値を結合します。セミコロン、単一引用符文字、または二重引用符文字を含む値を指定するには、二重引用符で値を囲む必要があります。セミコロンと二重引用符の両方が値に含まれている場合は、単一引用符を使用して値を囲むことができます。単一引用符は、値の先頭が二重引用符文字の場合にも、使用できます。逆に、値の先頭が単一引用符の場合は、二重引用符を使用できます。単一引用符と二重引用符の両方が値に含まれている場合、値を囲むために使用する引用符文字は、値の中ですべて 2 つずつ使用する必要があります。
文字列値の先頭または末尾の空白を含めるには、単一引用符または二重引用符で値を囲む必要があります。整数値、ブール値、列挙値の先頭または末尾の空白は無視されます。引用符で囲まれている場合も同様に無視されます。ただし、リテラル キーワード文字列や文字列値内の空白は、予約済みです。.NET Framework Version 1.1 をご使用の場合、単一引用符または二重引用符は、引用符が値の先頭または末尾の文字でない限り、接続文字列内で区切り文字を付けずに使用できます (たとえば、Data Source= my'Server または Data Source= my"Server など)。
キーワードまたは値の中で等号記号 (=) を使用する場合は、等号記号を 2 つ記述する必要があります。たとえば、次のような接続文字列がある場合、
"key==word=value"
キーワードは "key=word" で値は "value" です。
キーワード = 値のペアで特定のキーワードが接続文字列の中に複数回出現する場合、値セットでは最後のペアが使用されます。
キーワードの大文字と小文字は区別されません。
ConnectionString 内のキーワード値として有効な名前の一覧を次の表に示します。
名前 | 既定値 | 説明 |
---|---|---|
Application Name | アプリケーション名。アプリケーション名を指定しなかった場合は、'.Net SqlClient Data Provider'。 | |
AttachDBFilename
または 拡張プロパティ または Initial File Name |
接続可能なデータベースのプライマリ ファイル名。絶対パス名を含めます。
database キーワードでデータベース名を指定する必要があります。 |
|
Connect Timeout
または Connection Timeout |
15 | サーバーへの接続を待機する時間 (秒単位)。この時間が経過した後、接続の試行を終了し、エラーを生成します。 |
Current Language | SQL Server Language レコード名。 | |
Data Source
または Server または Address または Addr または Network Address |
接続する SQL Server のインスタンスの名前またはネットワーク アドレス。 | |
Encrypt | false | true の場合、サーバーに証明書がインストールされていれば、SQL Server は、クライアントとサーバーの間で送信されるすべてのデータに SSL 暗号化を使用します。認識される値は、 true 、 false 、 yes 、および no です。 |
Initial Catalog
または Database |
データベース名。 | |
Integrated Security
または Trusted_Connection |
false | false の場合、ユーザー ID とパスワードは接続文字列で指定します。 true の場合は、現在の Windows アカウントの資格情報が認証に使用されます。
使用できる値は、 true 、 false 、 yes 、 no 、および sspi (推奨) です。 sspi は、 true と等価です。 |
Network Library
または Net |
dbmssocn | SQL Server のインスタンスへの接続を確立するために使用するネットワーク ライブラリ。サポートされる値は、dbnmpntw (名前付きパイプ)、dbmsrpcn (マルチプロトコル)、dbmsadsn (AppleTalk)、dbmsgnet (VIA)、dbmslpcn (共有メモリ)、dbmsspxn (IPX/SPX)、および dbmssocn (TCP/IP) です。
接続先のシステムに、対応するネットワーク DLL がインストールされている必要があります。ネットワークを指定せずに、.、(local) など、ローカル サーバーを使用する場合は、共有メモリが使用されます。 |
Packet Size | 8192 | SQL Server のインスタンスと通信するために使用するネットワーク パケットのサイズ (バイト単位)。 |
Password
または Pwd |
ログオンに使用する SQL Server アカウントのパスワード (お勧めしません。高度なセキュリティ レベルを維持するために、代わりに Integrated Security キーワード、または Trusted_Connection キーワードを使用することをお勧めします)。 | |
Persist Security Info | false | false または no に設定すると (推奨)、接続が開いているか、開いている状態になったことがある場合に、パスワードなどの機密性の高い情報が接続文字列の一部として返されません。接続文字列をリセットすると、パスワードを含むすべての接続文字列値がリセットされます。認識される値は、 true 、 false 、 yes 、および no です。 |
User ID | SQL Server ログイン アカウント (お勧めしません。高度なセキュリティ レベルを維持するために、代わりに Integrated Security キーワード、または Trusted_Connection キーワードを使用することをお勧めします)。 | |
Workstation ID | ローカル コンピュータ名 | SQL Server に接続するワークステーションの名前。 |
ConnectionString 内の接続プール値として有効な名前の一覧を次の表に示します。接続プールの詳細については、「 .NET Framework Data Provider for SQL Server の接続プール 」を参照してください。
名前 | 既定値 | 説明 |
---|---|---|
Connection Lifetime | 0 | 接続がプールに返されるときに、作成時刻と現在の時刻が比較され、この時間 (秒単位) が Connection Lifetime で指定された値を超えていた場合は、接続が破棄されます。この機能は、クラスタ構成の場合に、実行中のサーバーとオンライン状態になったばかりのサーバーとの間で負荷分散を強制的に行うときに役立ちます。
値が 0 の場合は、プールされた接続のタイムアウトには最大値が設定されます。 |
Connection Reset | true | データベース接続をプールから引き出すときに、その接続をリセットするかどうかを決定します。Microsoft SQL Server バージョン 7.0 では、 false に設定すると、接続を取得するためのサーバーへのラウンドトリップを省略できますが、データベース コンテキストなどの接続状態がリセットされないことに注意する必要があります。 |
Enlist | true | true に設定すると、接続は、プールに追加されたときに、作成スレッドの現在のトランザクション コンテキストに自動的に加えられます。認識される値は、 true 、 false 、 yes 、および no です。 |
Max Pool Size | 100 | プールで許可される最大接続数。 |
Min Pool Size | 0 | プールで許可される最小接続数。 |
Pooling | true | true に設定すると、 SQLConnection オブジェクトは、適切なプールから引き出されます。または、必要に応じて作成され、適切なプールに追加されます。認識される値は、 true 、 false 、 yes 、および no です。 |
ブール値を必要とするキーワードまたは接続プール値を指定する場合は、true の代わりに yes、false の代わりに no を使用できます。整数値は文字列として表されます。
メモ .NET Framework Data Provider for SQL Server は、独自のプロトコルを使用して SQL Server と通信します。そのため、SQL Server に接続するときに ODBC データ ソース名 (DSN) の使用がサポートされません。これは、ODBC 層が追加されないためです。
注意 このリリースでは、ユーザー入力に基づいて接続文字列を構築する場合は、アプリケーションで注意が必要です。たとえば、ダイアログ ボックスからユーザー ID およびパスワード情報を取得し、接続文字列に追加する場合などです。アプリケーションでは、ユーザーが不要な接続文字列パラメータを入力値に埋め込むことができないようにする必要があります。たとえば、ユーザーが、別のデータベースに接続しようとして、パスワードに「validpassword;database=somedb」などと入力できないようにする必要があります。
使用例
[Visual Basic, C#, C++] SqlConnection を作成し、そのプロパティの一部を設定する例を次に示します。
Public Sub CreateSqlConnection()
Dim myConnection As New SqlConnection()
myConnection.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer;Connect Timeout=30"
myConnection.Open()
End Sub 'CreateSqlConnection
[C#]
public void CreateSqlConnection()
{
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer;Connect Timeout=30";
myConnection.Open();
}
[C++]
public:
void CreateSqlConnection()
{
SqlConnection* myConnection = new SqlConnection();
myConnection->ConnectionString = S"Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer;Connect Timeout=30";
myConnection->Open();
}
[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 ファミリ, .NET Compact Framework - Windows CE .NET
参照
SqlConnection クラス | SqlConnection メンバ | System.Data.SqlClient 名前空間 | ConnectionTimeout | Database | DataSource