SqlConnectionとは? わかりやすく解説

SqlConnection イベント


SqlConnection クラス

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

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 SqlConnection
    Inherits DbConnection
    Implements ICloneable
Dim instance As SqlConnection
public sealed class SqlConnection : DbConnection,
 ICloneable
public ref class SqlConnection sealed : public
 DbConnection, ICloneable
public final class SqlConnection extends DbConnection
 implements ICloneable
public final class SqlConnection extends
 DbConnection implements ICloneable
解説解説

SqlConnection オブジェクトは、SQL Server データ ソースへの一意なセッションを表します。クライアント/サーバー データベース システムでは、サーバーへのネットワーク接続に相当します。SqlConnection は、Microsoft SQL Server データベースへの接続のパフォーマンスを向上させるために、SqlDataAdapter および SqlCommand と組み合わせて使用します。すべてのサードパーティ SQL サーバー製品、および OLE DB をサポートするその他のデータ ソースでは、OleDbConnection を使用してください。

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

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

接続を常に閉じた状態にしておくには、次のコード片に示すように、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 SQL Server 用データ プロバイダを使用するときは、プロバイダが接続プールを自動的に管理するため、接続プールを有効にする必要はありません。ただし、その場合でも、一部の設定は変更できます。詳細については、「接続プールの使用」を参照してください。

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

SqlConnection オブジェクトのインスタンスを作成するアプリケーションは、宣言セキュリティまたは強制セキュリティの要求を設定することによって、直接的または間接的な呼び出し元すべてに対して、コードへの適切なアクセス許可を要求できます。SqlConnection は、SqlClientPermission オブジェクトを使用して、セキュリティ要求を作成します。ユーザーは、SqlClientPermissionAttribute オブジェクトを使用して、コードに適切なアクセス許可が設定されているかどうかを確認できます。また、ユーザーおよび管理者は、コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用して、コンピュータ、ユーザー、エンタープライズの各レベルでセキュリティ ポリシーを変更できます。詳細については、「.NET Framework におけるセキュリティ」を参照してください。セキュリティ確認要求の使用方法を示す例については、「コード アクセス セキュリティと ADO.NET」を参照してください。

サーバーから受け取る警告メッセージと情報メッセージの処理の詳細については、「接続イベントの使用」を参照してください。

使用例使用例

SqlCommand および SqlConnection を作成する例を次に示します。SqlConnection が開かれ、SqlCommand 用の Connection として設定されます。この例では、次に、ExecuteNonQuery を呼び出し、接続を閉じます。そのために、接続文字列と、Transact-SQL INSERT ステートメントであるクエリ文字列を ExecuteNonQuery に渡します。

Private Sub OpenSqlConnection()
    Dim connectionString As String
 = GetConnectionString()
    Using connection As New SqlConnection(connectionString)
        connection.Open()
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
        Console.WriteLine("State: {0}", connection.State)
    End Using
End Sub

Private Function GetConnectionString() As
 String
    ' To avoid storing the connection string in your code,  
    ' you can retrieve it from a configuration file, using the
    ' System.Configuration.ConfigurationSettings.AppSettings property
    Return "Data Source=(local);Database=AdventureWorks;"
 _
      & "Integrated Security=SSPI;"
End Function
private static void OpenSqlConnection()
{
    string connectionString = GetConnectionString();
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("State: {0}", connection.State);
    }
}

static private string GetConnectionString()
{
    // To avoid storing the connection string in your code, 
    // you can retrieve it from a configuration file, using the 
    // System.Configuration.ConfigurationSettings.AppSettings property
 
    return "Data Source=(local);Initial Catalog=AdventureWorks;"
        + "Integrated Security=SSPI;";
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbConnection
        System.Data.SqlClient.SqlConnection
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlConnection コンストラクタ ()

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

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

public SqlConnection ()
public:
SqlConnection ()
public SqlConnection ()
public function SqlConnection ()
解説解説

SqlConnection の新しいインスタンスを作成すると、読み書き可能プロパティは、ConnectionString プロパティのキーワードを関連付けて設定した場合を除いて、次の初期値に設定されます。

プロパティ

初期値

ConnectionString

空の文字列 ("")

ConnectionTimeout

15

Database

空の文字列 ("")

DataSource

空の文字列 ("")

これらのプロパティの値を変更するには、ConnectionString プロパティを使用する必要があります。SqlConnectionStringBuilder クラスを使用すると、接続文字列の内容の作成と管理を効率よく行うことができます。

使用例使用例

SqlConnection を作成し、開く例を次に示します。

Private Sub OpenSqlConnection()
    Dim connectionString As String
 = GetConnectionString()
    Using connection As New SqlConnection(connectionString)
        connection.Open()
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
        Console.WriteLine("State: {0}", connection.State)
    End Using
End Sub

Private Function GetConnectionString() As
 String
    ' To avoid storing the connection string in your code,  
    ' you can retrieve it from a configuration file, using the
    ' System.Configuration.ConfigurationSettings.AppSettings property
    Return "Data Source=(local);Database=AdventureWorks;"
 _
      & "Integrated Security=SSPI;"
End Function
private static void OpenSqlConnection()
{
    string connectionString = GetConnectionString();
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("State: {0}", connection.State);
    }
}

static private string GetConnectionString()
{
    // To avoid storing the connection string in your code, 
    // you can retrieve it from a configuration file, using the 
    // System.Configuration.ConfigurationSettings.AppSettings property
 
    return "Data Source=(local);Initial Catalog=AdventureWorks;"
        + "Integrated Security=SSPI;";
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlConnection コンストラクタ (String)

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

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    connectionString As String _
)
Dim connectionString As String

Dim instance As New SqlConnection(connectionString)
public SqlConnection (
    string connectionString
)
public:
SqlConnection (
    String^ connectionString
)
public SqlConnection (
    String connectionString
)
public function SqlConnection (
    connectionString : String
)

パラメータ

connectionString

SQL Server データベースを開くために使用する接続。

解説解説

SqlConnection の新しいインスタンスを作成すると、読み書き可能プロパティは、ConnectionString プロパティのキーワードを関連付けて設定した場合を除いて、次の初期値に設定されます。

プロパティ

初期値

ConnectionString

connectionString

ConnectionTimeout

15

Database

空の文字列 ("")

DataSource

空の文字列 ("")

これらのプロパティの値を変更するには、ConnectionString プロパティを使用する必要があります。SqlConnection クラスを使用すると、接続文字列の内容の作成と管理を効率よく行うことができます。

使用例使用例

SqlConnection を作成し、開く例を次に示します。

Private Sub OpenSqlConnection()
    Dim connectionString As String
 = GetConnectionString()

    Using connection As New SqlConnection(connectionString)

        connection.Open()

        Console.WriteLine("State: {0}", connection.State)
        Console.WriteLine("ConnectionString: {0}",
 _
            connection.ConnectionString)
    End Using
End Sub

Private Function GetConnectionString() As
 String
    ' To avoid storing the connection string in your code,  
    ' you can retrieve it from a configuration file, using the
    ' System.Configuration.ConfigurationSettings.AppSettings property
    Return "Data Source=(local);Database=AdventureWorks;"
 _
      & "Integrated Security=SSPI;"
End Function
private static void OpenSqlConnection()
{
    string connectionString = GetConnectionString();

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();

        Console.WriteLine("State: {0}", connection.State);
        Console.WriteLine("ConnectionString: {0}",
            connection.ConnectionString);
    }
}

static private string GetConnectionString()
{
    // To avoid storing the connection string in your code, 
    // you can retrieve it from a configuration file, using the 
    // System.Configuration.ConfigurationSettings.AppSettings property
 
    return "Data Source=(local);Initial Catalog=AdventureWorks;"
        + "Integrated Security=SSPI;";
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlConnection コンストラクタ

SqlConnection クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

参照参照

関連項目

SqlConnection クラス
SqlConnection メンバ
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlConnection プロパティ


パブリック プロパティパブリック プロパティ

プロテクト プロパティプロテクト プロパティ
参照参照

関連項目

SqlConnection クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlConnection メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド BeginTransaction オーバーロードされます。 データベース トランザクションを開始します。
パブリック メソッド ChangeDatabase オーバーライドされます。 開いている SqlConnection の現在のデータベースを変更します。
パブリック メソッド ChangePassword 接続文字列中に指定されているユーザーの SQL Server パスワードを、指定された新しいパスワードに変更します。
パブリック メソッド ClearAllPools 接続プールを空にします。
パブリック メソッド ClearPool 指定した接続に関連付けられている接続プールを空にします。
パブリック メソッド Close オーバーライドされます。 データベースへの接続を閉じます。このメソッドは、開いている接続を閉じるための最も好ましいメソッドです。
パブリック メソッド CreateCommand SqlConnection に関連付けられている SqlCommand オブジェクトを作成し、返します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
パブリック メソッド EnlistDistributedTransaction 指定した分散トランザクションに参加します。
パブリック メソッド EnlistTransaction オーバーライドされます。 指定した分散トランザクションに参加します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetSchema オーバーロードされます。 オーバーライドされます。 この SqlConnection のデータ ソースのスキーマ情報を返します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Open オーバーライドされます。 ConnectionString で指定したプロパティ設定を使用して、データベース接続を開きます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ResetStatistics 統計情報の収集が有効にされている場合、すべての値はゼロにリセットされます。
パブリック メソッド RetrieveStatistics メソッドが呼び出された時点の統計情報の、名前/値ペアから成るコレクションを返します。
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 ( Component から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbConnection.BeginTransaction オーバーロードされます。  
インターフェイスの明示的な実装 System.ICloneable.Clone 現在のインスタンスのコピーである新しいオブジェクトを作成します。
インターフェイスの明示的な実装 System.IDisposable.Dispose  
参照参照

関連項目

SqlConnection クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlConnection メンバ

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

SqlConnection データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド BeginTransaction オーバーロードされます。 データベース トランザクションを開始します。
パブリック メソッド ChangeDatabase オーバーライドされます。 開いている SqlConnection の現在のデータベースを変更します。
パブリック メソッド ChangePassword 接続文字列中に指定されているユーザーの SQL Server パスワードを、指定された新しいパスワードに変更します。
パブリック メソッド ClearAllPools 接続プールを空にします。
パブリック メソッド ClearPool 指定した接続に関連付けられている接続プールを空にします。
パブリック メソッド Close オーバーライドされます。 データベースへの接続を閉じます。このメソッドは、開いている接続を閉じるための最も好ましいメソッドです。
パブリック メソッド CreateCommand SqlConnection に関連付けられている SqlCommand オブジェクトを作成し、返します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
パブリック メソッド EnlistDistributedTransaction 指定した分散トランザクションに参加します。
パブリック メソッド EnlistTransaction オーバーライドされます。 指定した分散トランザクションに参加します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetSchema オーバーロードされます。 オーバーライドされます。 この SqlConnection のデータ ソースのスキーマ情報を返します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Open オーバーライドされます。 ConnectionString で指定したプロパティ設定を使用して、データベース接続を開きます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ResetStatistics 統計情報の収集が有効にされている場合、すべての値はゼロにリセットされます。
パブリック メソッド RetrieveStatistics メソッドが呼び出された時点の統計情報の、名前/値ペアから成るコレクションを返します。
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 (Component から継承されます。)
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Data.IDbConnection.BeginTransaction オーバーロードされます。  
インターフェイスの明示的な実装 System.ICloneable.Clone 現在のインスタンスのコピーである新しいオブジェクトを作成します。
インターフェイスの明示的な実装 System.IDisposable.Dispose  
参照参照

関連項目

SqlConnection クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SqlConnection」の関連用語

SqlConnectionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlConnectionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS