IDbConnection IDbConnection IDbConnection IDbConnection Interface

定義

データ ソースへのオープン接続を表し、リレーショナル データベースにアクセスする .NET Framework データ プロバイダーにより実装されます。Represents an open connection to a data source, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDbConnection : IDisposable
public interface IDbConnection : IDisposable
type IDbConnection = interface
    interface IDisposable
Public Interface IDbConnection
Implements IDisposable
派生
実装

次の例では、 SqlCommand派生クラスのインスタンスとSqlConnectionを作成します。The following example creates instances of the derived classes, SqlCommand and SqlConnection. が開き、のConnectionとしてSqlCommand設定されます。 SqlConnectionThe SqlConnection is opened and set as the Connection for the SqlCommand. この例ではExecuteNonQuery、を呼び出し、接続を閉じます。The example then calls ExecuteNonQuery, and closes the connection. これを実現するためExecuteNonQueryに、には、transact-sql の INSERT ステートメントである接続文字列とクエリ文字列が渡されます。To accomplish this, the ExecuteNonQuery is passed a connection string and a query string that is a Transact-SQL INSERT statement.

using System;
using System.Data;

namespace IDbConnectionSample {
   class Program {
      static void Main(string[] args) {
         IDbConnection connection;

         // First use a SqlClient connection
         connection = new System.Data.SqlClient.SqlConnection(@"Server=(localdb)\V11.0");
         Console.WriteLine("SqlClient\r\n{0}", GetServerVersion(connection));
         connection = new System.Data.SqlClient.SqlConnection(@"Server=(local);Integrated Security=true");
         Console.WriteLine("SqlClient\r\n{0}", GetServerVersion(connection));

         // Call the same method using ODBC
         // NOTE: LocalDB requires the SQL Server 2012 Native Client ODBC driver
         connection = new System.Data.Odbc.OdbcConnection(@"Driver={SQL Server Native Client 11.0};Server=(localdb)\v11.0");
         Console.WriteLine("ODBC\r\n{0}", GetServerVersion(connection));
         connection = new System.Data.Odbc.OdbcConnection(@"Driver={SQL Server Native Client 11.0};Server=(local);Trusted_Connection=yes");
         Console.WriteLine("ODBC\r\n{0}", GetServerVersion(connection));

         // Call the same method using OLE DB
         connection = new System.Data.OleDb.OleDbConnection(@"Provider=SQLNCLI11;Server=(localdb)\v11.0;Trusted_Connection=yes;");
         Console.WriteLine("OLE DB\r\n{0}", GetServerVersion(connection));
         connection = new System.Data.OleDb.OleDbConnection(@"Provider=SQLNCLI11;Server=(local);Trusted_Connection=yes;");
         Console.WriteLine("OLE DB\r\n{0}", GetServerVersion(connection));
         }

      public static string GetServerVersion(IDbConnection connection) {
         // Ensure that the connection is opened (otherwise executing the command will fail)
         ConnectionState originalState = connection.State;
         if (originalState != ConnectionState.Open)
            connection.Open();
         try {
            // Create a command to get the server version
            // NOTE: The query's syntax is SQL Server specific
            IDbCommand command = connection.CreateCommand();
            command.CommandText = "SELECT @@version";
            return (string)command.ExecuteScalar();
         }
         finally {
            // Close the connection if that's how we got it
            if (originalState == ConnectionState.Closed)
               connection.Close();
         }
      }
   }
}
Imports System.Data

Class Program

    Public Shared Sub Main(args As String())

        Dim connection As IDbConnection



        ' First use a SqlClient connection

        connection = New System.Data.SqlClient.SqlConnection("Server=(localdb)\V11.0")

        Console.WriteLine("SqlClient" & vbCr & vbLf & "{0}", GetServerVersion(connection))

        connection = New System.Data.SqlClient.SqlConnection("Server=(local);Integrated Security=true")

        Console.WriteLine("SqlClient" & vbCr & vbLf & "{0}", GetServerVersion(connection))



        ' Call the same method using ODBC

        ' NOTE: LocalDB requires the SQL Server 2012 Native Client ODBC driver

        connection = New System.Data.Odbc.OdbcConnection("Driver={SQL Server Native Client 11.0};Server=(localdb)\v11.0")

        Console.WriteLine("ODBC" & vbCr & vbLf & "{0}", GetServerVersion(connection))

        connection = New System.Data.Odbc.OdbcConnection("Driver={SQL Server Native Client 11.0};Server=(local);Trusted_Connection=yes")

        Console.WriteLine("ODBC" & vbCr & vbLf & "{0}", GetServerVersion(connection))


        ' Call the same method using OLE DB

        connection = New System.Data.OleDb.OleDbConnection("Provider=SQLNCLI11;Server=(localdb)\v11.0;Trusted_Connection=yes;")

        Console.WriteLine("OLE DB" & vbCr & vbLf & "{0}", GetServerVersion(connection))

        connection = New System.Data.OleDb.OleDbConnection("Provider=SQLNCLI11;Server=(local);Trusted_Connection=yes;")

        Console.WriteLine("OLE DB" & vbCr & vbLf & "{0}", GetServerVersion(connection))

    End Sub



    Public Shared Function GetServerVersion(connection As IDbConnection) As String

        ' Ensure that the connection is opened (otherwise executing the command will fail)

        Dim originalState As ConnectionState = connection.State

        If originalState <> ConnectionState.Open Then

            connection.Open()

        End If

        Try

            ' Create a command to get the server version

            ' NOTE: The query's syntax is SQL Server specific

            Dim command As IDbCommand = connection.CreateCommand()

            command.CommandText = "SELECT @@version"

            Return DirectCast(command.ExecuteScalar(), String)

        Finally

            ' Close the connection if that's how we got it

            If originalState = ConnectionState.Closed Then

                connection.Close()

            End If

        End Try

    End Function

End Class

注釈

IDbConnectionインターフェイスを使用すると、継承クラスは、データソースとの一意のセッションを表す接続クラス (たとえば、サーバーへのネットワーク接続) を実装できます。The IDbConnection interface enables an inheriting class to implement a Connection class, which represents a unique session with a data source (for example, a network connection to a server). 接続クラスの詳細については、「データソースへの接続」を参照してください。For more information about Connection classes, see Connecting to a Data Source.

アプリケーションは、 IDbConnectionインターフェイスのインスタンスを直接作成するのではなく、を継承IDbConnectionするクラスのインスタンスを作成します。An application does not create an instance of the IDbConnection interface directly, but creates an instance of a class that inherits IDbConnection.

を継承IDbConnectionするクラスは、継承されたすべてのメンバーを実装する必要があり、通常は、プロバイダー固有の機能を追加するための追加メンバーを定義します。Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality. たとえば、インターフェイスはIDbConnection ConnectionTimeoutプロパティを定義します。For example, the IDbConnection interface defines the ConnectionTimeout property. 次に、クラスSqlConnectionはこのプロパティを継承し、 PacketSizeプロパティも定義します。In turn, the SqlConnection class inherits this property, and also defines the PacketSize property.

注意 (実装者)

.NET Framework データプロバイダー間の一貫性を高めるには、フォームPrvClassnameに継承クラスの名前を付けます。ここPrvで、は、特定の .NET Framework データプロバイダーの名前空間のすべてのクラスに指定された一様なプレフィックスです。To promote consistency among .NET Framework data providers, name the inheriting class in the form PrvClassname where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. たとえば、 SqlSystem.Data.SqlClient名前空間のSqlConnectionクラスのプレフィックスです。For example, Sql is the prefix of the SqlConnection class in the System.Data.SqlClient namespace.

IDbConnectionインターフェイスから継承する場合は、次のコンストラクターを実装する必要があります。When you inherit from the IDbConnection interface, you should implement the following constructors:

アイテムItem 説明Description
PrvConnection ()PrvConnection() PrvConnection クラスの新しいインスタンスを初期化します。Initializes a new instance of the PrvConnection class.
PrvConnection (文字列 connectionString)PrvConnection(string connectionString) 接続文字列を含む文字列が指定された場合に、PrvConnection クラスの新しいインスタンスを初期化します。Initializes a new instance of the PrvConnection class when given a string containing the connection string.

プロパティ

ConnectionString ConnectionString ConnectionString ConnectionString

データベースを開くために使用する文字列を取得または設定します。Gets or sets the string used to open a database.

ConnectionTimeout ConnectionTimeout ConnectionTimeout ConnectionTimeout

試行を中断してエラーを生成する前に、接続の確立時に待機する時間を取得します。Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.

Database Database Database Database

現在のデータベース、または接続が開いてから使用するデータベースの名前を取得します。Gets the name of the current database or the database to be used after a connection is opened.

State State State State

現在の接続の状態を取得します。Gets the current state of the connection.

メソッド

BeginTransaction() BeginTransaction() BeginTransaction() BeginTransaction()

データベース トランザクションを開始します。Begins a database transaction.

BeginTransaction(IsolationLevel) BeginTransaction(IsolationLevel) BeginTransaction(IsolationLevel) BeginTransaction(IsolationLevel)

指定した IsolationLevel 値を使用して、データベース トランザクションを開始します。Begins a database transaction with the specified IsolationLevel value.

ChangeDatabase(String) ChangeDatabase(String) ChangeDatabase(String) ChangeDatabase(String)

開いている Connection オブジェクトの現在のデータベースを変更します。Changes the current database for an open Connection object.

Close() Close() Close() Close()

データベースへの接続を閉じます。Closes the connection to the database.

CreateCommand() CreateCommand() CreateCommand() CreateCommand()

接続に関連付けられた Command オブジェクトを作成し、返します。Creates and returns a Command object associated with the connection.

Dispose() Dispose() Dispose() Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Inherited from IDisposable)
Open() Open() Open() Open()

プロバイダー固有の接続オブジェクトの ConnectionString プロパティで指定した設定でデータベース接続を開きます。Opens a database connection with the settings specified by the ConnectionString property of the provider-specific Connection object.

適用対象