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 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
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
継承
SqlConnection
継承
継承
実装

次の例では、 と を SqlCommand 作成します SqlConnectionSqlConnectionが開き、 の として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は、 および SqlCommand と共SqlDataAdapterに使用され、Microsoft SQL Server データベースに接続するときのパフォーマンスを向上させます。 サードパーティ製のSQL Server製品およびその他の OLE DB でサポートされているデータ ソースの場合は、 を使用OleDbConnectionします。

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

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

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

Note

接続が接続プールからフェッチされたり接続プールに返されたりしたとき、ログイン イベントとログアウト イベントはサーバーで発生しません。これは、接続プールに返されても接続は実際には終了していないためです。 詳しくは、「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.
    }

注意

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

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

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

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

注意事項

共有メモリの代わりに TCP を強制できます。 これを行うには、tcp: の前に接続文字列のサーバー名を付けるか、localhost を使用します。

コンストラクター

SqlConnection()

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

SqlConnection(String)

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

SqlConnection(String, SqlCredential)

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

プロパティ

AccessToken

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

CanCreateBatch

この DbConnection インスタンスが DbBatch クラスをサポートしているかどうかを示す値を取得します。

(継承元 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 オブジェクトを取得または設定します。

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()

DbBatch クラスを実装するプロバイダーのクラスの新しいインスタンスを返します。

(継承元 DbConnection)
CreateCommand()

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

CreateDbBatch()

派生クラスでオーバーライドされた場合、 は、 クラスを実装するプロバイダーのクラスの新しいインスタンスを DbBatch 返します。

(継承元 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)

適用対象

こちらもご覧ください