SqlConnection クラス

定義

SQL Server データベースへの接続を表します。 このクラスは継承できません。

public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable, IDisposable
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface IDbConnection
    interface ICloneable
    interface IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable, IDisposable
継承
SqlConnection
継承
継承
実装

次の例では、 と を SqlCommand 作成します SqlConnection 。 が SqlConnection 開き、 の として Connection 設定されます SqlCommand 。 この例では、 を呼び出 ExecuteNonQuery します。 これを実現するために、 ExecuteNonQuery には、Transact-SQL INSERT ステートメントである接続文字列とクエリ文字列が渡されます。 コードが using ブロックを終了すると、接続は自動的に閉じられます。

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

注釈

オブジェクト SqlConnection は、特定のデータ ソースへの一意SQL Serverを表します。 クライアント/サーバー データベース システムでは、サーバーへのネットワーク接続と同じです。 SqlConnection は、 および と共 SqlDataAdapterSqlCommand 使用され、データベースに接続するときにパフォーマンスMicrosoft SQL Serverされます。 すべてのサード パーティ製のSQL Server、その他のOLE DBサポートされているデータ ソースについては、 を使用します OleDbConnection

のインスタンスを作成すると、 SqlConnection すべてのプロパティが初期値に設定されます。 これらの値の一覧については、 コンストラクターを参照 SqlConnection してください。

接続文字列 ConnectionString 内のキーワードの一覧については、 を参照してください。

SqlConnection スコープ外に出た場合、閉じられます。 そのため、 または を呼び出して、接続を明示的に閉じる必要 Close があります DisposeCloseDispose は機能的に同等です。 接続プールの値が または に設定されている場合、基になる接続は接続 Pooling true yes プールに返されます。 一方、 が または に設定されている場合、サーバーへの基になる接続は実際 Pooling false no には閉じられます。

注意

接続が接続プールからフェッチされたり接続プールに返されたりしたとき、ログイン イベントとログアウト イベントはサーバーで発生しません。これは、接続プールに返されても接続は実際には終了していないためです。 詳しくは、「SQL Server の接続プール (ADO.NET)」をご覧ください。

接続が常に閉じられます。次のコード フラグメントに示すように、 ブロック内の接続 using を開きます。 これにより、コードがブロックを終了すると、接続が自動的に閉じられます。

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

注意

ハイパフォーマンス アプリケーションをデプロイするには、接続プールを使用する必要があります。 SQL Server に .NET Framework Data Provider を使用する場合は、プロバイダーがこれを自動的に管理しますが、一部の設定を変更することもできますが、接続プールを有効にする必要がなされません。 詳しくは、「SQL Server の接続プール (ADO.NET)」をご覧ください。

を実行するメソッドによって が生成された場合、重大度レベルが 19 以下の場合、 は開 SqlException SqlCommand SqlConnection いたままです。 重大度レベルが 20 以上の場合、通常、サーバーは を閉じます SqlConnection 。 ただし、ユーザーは接続を再び開き、続行できます。

オブジェクトのインスタンスを作成するアプリケーションでは、宣言型または命令型のセキュリティ要求を設定することで、すべての直接呼び出し元と間接呼び出し元がコードに対する十分なアクセス許可を持 SqlConnection っている必要があります。 SqlConnection は、 オブジェクトを使用してセキュリティ要求を SqlClientPermission 行います。 ユーザーは、 オブジェクトを使用して、コードに十分なアクセス許可を持っている必要 SqlClientPermissionAttribute があります。 ユーザーと管理者は、Caspol.exe (Code Access Security Policy Tool) を使用して、コンピューター、ユーザー、およびエンタープライズ レベルでセキュリティ ポリシーを変更することもできます。 詳細については、「.NET でのセキュリティ」を参照してください。 セキュリティの要求を使用する方法を示す例については、「 コードアクセス セキュリティ」と「コード アクセス の ADO.NET。

サーバーからの警告メッセージと情報メッセージの処理の詳細については、「接続イベント」を 参照してください。 エンジンのエラーとエラー SQL Serverの詳細については、「イベントとエラーのデータベース エンジン を参照してください

注意事項

共有メモリの代わりに TCP を強制できます。 これを行うには、接続文字列のサーバー名に tcp: というプレフィックスを付け、localhost を使用します。

コンストラクター

SqlConnection()

SqlConnection クラスの新しいインスタンスを初期化します。

SqlConnection(String)

接続文字列を示す文字列を指定して、SqlConnection クラスの新しいインスタンスを初期化します。

SqlConnection(String, SqlCredential)

Integrated Security = true と、ユーザー ID とパスワードを含む SqlCredential オブジェクトを使用しない接続文字列を指定して、SqlConnection クラスの新しいインスタンスを初期化します。

プロパティ

AccessToken

接続のアクセス トークンを取得または設定します。

CanCreateBatch (継承元 DbConnection)
CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。

(継承元 Component)
ClientConnectionId

試行成功したか失敗したかにかかわらず、最新の接続試行の接続 ID。

ColumnEncryptionKeyCacheTtl

Always Encrypted 機能の列暗号化キーのキャッシュ内の、列暗号化キー エントリの有効期限を取得または設定します。 既定値は 2 時間です。 0 は、キャッシュがまったくないことを意味します。

ColumnEncryptionQueryMetadataCacheEnabled

Always Encrypted が有効であるデータベースに対して実行されるパラメーター化されたクエリについて、クエリ メタデータのキャッシュが有効 (true) か無効 (false) かを示す値を取得または設定します。 既定値は true です。

ColumnEncryptionTrustedMasterKeyPaths

データベース サーバーの信頼されたキー パスの一覧を設定できます。 アプリケーションのクエリを処理中に、一覧に存在しないキー パスをドライバーが受け取ると、クエリは失敗します。 このプロパティは、セキュリティが侵害され、偽のキー パスを提供し、キー ストアの資格情報漏洩につながるおそれがある SQL Server を含めたセキュリティ攻撃に対して、セキュリティ保護をさらに強化します。

ConnectionString

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

ConnectionTimeout

試行を終了してエラーを生成するまでの、接続の確立の試行時に待機する時間 (秒単位) を取得します。

Container

IContainer を含む Component を取得します。

(継承元 Component)
Credential

この接続の SqlCredential オブジェクトを取得または設定します。

Credentials
Database

現在のデータベース、または接続が開いてから使用するデータベースの名前を取得します。

DataSource

接続先となる SQL Server のインスタンスの名前を取得します。

DbProviderFactory

この DbProviderFactoryDbConnection を取得します。

(継承元 DbConnection)
DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。

(継承元 Component)
Events

Component に結び付けられているイベント ハンドラーのリストを取得します。

(継承元 Component)
FireInfoMessageEventOnUserErrors

FireInfoMessageEventOnUserErrors プロパティを取得または設定します。

PacketSize

SQL Server のインスタンスと通信するために使用するネットワーク パケットのサイズ (バイト単位) を取得します。

ServerVersion

クライアントが接続している SQL Server のインスタンスのバージョンを示す文字列を取得します。

Site

ComponentISite を取得または設定します。

(継承元 Component)
State

接続で実行された最も新しいネットワーク操作時の SqlConnection の状態を示します。

StatisticsEnabled

true に設定された場合、現在の接続について統計情報の収集が有効になります。

WorkstationId

データベース クライアントを識別する文字列を取得します。

メソッド

BeginDbTransaction(IsolationLevel)

派生クラスでオーバーライドされた場合、データベース トランザクションを開始します。

(継承元 DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

データベース トランザクションを非同期に開始します。

(継承元 DbConnection)
BeginTransaction()

データベース トランザクションを開始します。

BeginTransaction(IsolationLevel)

分離レベルを指定して、データベース トランザクションを開始します。

BeginTransaction(IsolationLevel, String)

分離レベルとトランザクション名を指定して、データベース トランザクションを開始します。

BeginTransaction(String)

トランザクション名を指定して、データベース トランザクションを開始します。

BeginTransactionAsync(CancellationToken)

データベース トランザクションを非同期に開始します。

(継承元 DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

データベース トランザクションを非同期に開始します。

(継承元 DbConnection)
ChangeDatabase(String)

開いている SqlConnection の現在のデータベースを変更します。

ChangeDatabaseAsync(String, CancellationToken)

開いている接続の現在のデータベースを非同期に変更します。

(継承元 DbConnection)
ChangePassword(String, SqlCredential, SecureString)

SqlCredential オブジェクトで指定されたユーザーの SQL Server のパスワードを変更します。

ChangePassword(String, String)

接続文字列で指定されているユーザーの SQL Server のパスワードを、指定された新しいパスワードに変更します。

ClearAllPools()

接続プールを空にします。

ClearPool(SqlConnection)

指定した接続に関連付けられている接続プールを空にします。

Close()

データベースへの接続を閉じます。 このメソッドは、開いている接続を閉じるための最も好ましいメソッドです。

CloseAsync()

データベースへの接続を非同期に閉じます。

(継承元 DbConnection)
CreateBatch() (継承元 DbConnection)
CreateCommand()

SqlConnection に関連付けられている SqlCommand オブジェクトを作成し、返します。

CreateDbBatch() (継承元 DbConnection)
CreateDbCommand()

派生クラスでオーバーライドされた場合、現在の接続に関連付けられている DbCommand オブジェクトを作成して返します。

(継承元 DbConnection)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

(継承元 DbConnection)
Dispose()

Component によって使用されているすべてのリソースを解放します。

(継承元 Component)
Dispose(Boolean)

DbConnection によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 DbConnection)
Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 Component)
DisposeAsync()

接続オブジェクトを非同期に破棄します。

(継承元 DbConnection)
EnlistDistributedTransaction(ITransaction)

分散トランザクションとして指定したトランザクションに参加します。

EnlistTransaction(Transaction)

分散トランザクションとして指定したトランザクションに参加します。

EnlistTransaction(Transaction)

指定したトランザクションに参加します。

(継承元 DbConnection)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
互換性のために残されています。

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetSchema()

この SqlConnection のデータ ソースのスキーマ情報を返します。 スキームの詳細については、「SQL Server スキーマ コレクション」を参照してください。

GetSchema()

この DbConnection のデータ ソースのスキーマ情報を返します。

(継承元 DbConnection)
GetSchema(String)

スキーマ名として指定した文字列を使用して、この SqlConnection のデータ ソースのスキーマ情報を返します。

GetSchema(String)

スキーマ名として指定した文字列を使用して、この DbConnection のデータ ソースのスキーマ情報を返します。

(継承元 DbConnection)
GetSchema(String, String[])

スキーマ名に指定した文字列と制限値に指定した文字列配列を使用して、この SqlConnection のデータ ソースのスキーマ情報を返します。

GetSchema(String, String[])

スキーマ名に指定した文字列と制限値に指定した文字列配列を使用して、この DbConnection のデータ ソースのスキーマ情報を返します。

(継承元 DbConnection)
GetSchemaAsync(CancellationToken)

これは GetSchema() の非同期バージョンです。 プロバイダーは、適切な実装でオーバーライドする必要があります。 必要に応じて、cancellationToken を優先できます。 既定の実装は同期 GetSchema() コールを呼び出し、完了したタスクを返します。 既定の実装は、既に取り消された cancellationToken を渡した場合、取り消されたタスクを返します。 GetSchema() によってスローされる例外は、返されたタスクの Exception プロパティを介して通信されます。

(継承元 DbConnection)
GetSchemaAsync(String, CancellationToken)

これは GetSchema(String) の非同期バージョンです。 プロバイダーは、適切な実装でオーバーライドする必要があります。 必要に応じて、cancellationToken を優先できます。 既定の実装は同期 GetSchema(String) コールを呼び出し、完了したタスクを返します。 既定の実装は、既に取り消された cancellationToken を渡した場合、取り消されたタスクを返します。 GetSchema(String) によってスローされる例外は、返されたタスクの Exception プロパティを介して通信されます。

(継承元 DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

これは GetSchema(String, String[]) の非同期バージョンです。 プロバイダーは、適切な実装でオーバーライドする必要があります。 必要に応じて、cancellationToken を優先できます。 既定の実装は同期 GetSchema(String, String[]) コールを呼び出し、完了したタスクを返します。 既定の実装は、既に取り消された cancellationToken を渡した場合、取り消されたタスクを返します。 GetSchema(String, String[]) によってスローされる例外は、返されたタスクの Exception プロパティを介して通信されます。

(継承元 DbConnection)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
互換性のために残されています。

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

StateChange イベントを発生させます。

(継承元 DbConnection)
Open()

ConnectionString で指定したプロパティ設定を使用して、データベース接続を開きます。

OpenAsync()

Open() で指定した設定を使用してデータベース接続を開く ConnectionString の非同期バージョン。 このメソッドは、CancellationToken.None で仮想メソッド OpenAsync(CancellationToken) を呼び出します。

(継承元 DbConnection)
OpenAsync(CancellationToken)

ConnectionString で指定したプロパティ設定を使用してデータベース接続を開く Open() の非同期バージョン。 キャンセル トークンを使用すると、接続タイムアウトが経過する前に操作を破棄することを要求できます。 例外は、返されたタスクによって伝達されます。 接続が成功せずに接続タイムアウトの時間が経過した場合、返されるタスクは例外での失敗としてマークされます。 実装は、プール済みの接続でもプールされていない接続でも、呼び出し元のスレッドをブロックすることなくタスクを返します。

OpenAsync(CancellationToken)

これは Open() の非同期バージョンです。 プロバイダーは、適切な実装でオーバーライドする必要があります。 オプションで、キャンセル トークン優先できます。

既定の実装は同期 Open() コールを呼び出し、完了したタスクを返します。 既定の実装は、既に取り消された cancellationToken を渡した場合、取り消されたタスクを返します。 Open によってスローされる例外は、返されたタスクの Exception プロパティを介して通信されます。

返されたタスクが完了するまで DbConnection オブジェクトの他のメソッドとプロパティを呼び出さないでください。

(継承元 DbConnection)
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

列暗号化キー ストア プロバイダーを登録します。

ResetStatistics()

統計情報の収集が有効にされている場合、すべての値はゼロにリセットされます。

RetrieveStatistics()

メソッドが呼び出された時点の統計情報の、名前/値ペアから成るコレクションを返します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
ToString()

Component の名前 (存在する場合) を格納する String を返します。 このメソッドはオーバーライドできません。

(継承元 Component)

イベント

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。

(継承元 Component)
InfoMessage

SQL Server が警告メッセージまたは情報メッセージを返したときに発生します。

StateChange

接続の状態が変化したときに発生します。

StateChange

接続の状態が変化したときに発生します。

(継承元 DbConnection)

明示的なインターフェイスの実装

ICloneable.Clone()

現在のインスタンスのコピーである新しいオブジェクトを作成します。

IDbConnection.BeginTransaction()

データベース トランザクションを開始します。

IDbConnection.BeginTransaction()

データベース トランザクションを開始します。

(継承元 DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

指定した IsolationLevel 値を使用して、データベース トランザクションを開始します。

IDbConnection.BeginTransaction(IsolationLevel)

分離レベルを指定して、データベース トランザクションを開始します。

(継承元 DbConnection)
IDbConnection.CreateCommand()

接続に関連付けられた Command オブジェクトを作成し、返します。

IDbConnection.CreateCommand()

現在の接続に関連付けられた DbCommand オブジェクトを作成し、返します。

(継承元 DbConnection)

適用対象

こちらもご覧ください