IDbConnection IDbConnection IDbConnection IDbConnection Interface

Définition

Représente une connexion ouverte vers une source de données et est implémenté par les fournisseurs de données .NET Framework qui accèdent aux bases de données relationnelles.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
Dérivé
Implémente

Exemples

L’exemple suivant crée des instances des classes dérivées, SqlCommand et SqlConnection.The following example creates instances of the derived classes, SqlCommand and SqlConnection. Le SqlConnection est ouvert et défini en tant que le Connection pour le SqlCommand.The SqlConnection is opened and set as the Connection for the SqlCommand. L’exemple appelle ensuite ExecuteNonQueryet ferme la connexion.The example then calls ExecuteNonQuery, and closes the connection. Pour ce faire, le ExecuteNonQuery est passée à une chaîne de connexion et une chaîne de requête qui est une instruction 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

Remarques

Le IDbConnection interface permet à une classe qui hérite d’implémenter une classe de connexion, ce qui représente une session unique avec une source de données (par exemple, une connexion réseau à un serveur).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). Pour plus d’informations sur les classes de connexion, consultez connexion à une Source de données.For more information about Connection classes, see Connecting to a Data Source.

Une application ne crée pas une instance de la IDbConnection interface directement, mais crée une instance d’une classe qui hérite de IDbConnection.An application does not create an instance of the IDbConnection interface directly, but creates an instance of a class that inherits IDbConnection.

Les classes qui héritent IDbConnection doit implémenter les membres hérités et définissent généralement des membres supplémentaires pour ajouter des fonctionnalités spécifiques au fournisseur.Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality. Par exemple, le IDbConnection interface définit le ConnectionTimeout propriété.For example, the IDbConnection interface defines the ConnectionTimeout property. À son tour, le SqlConnection classe hérite de cette propriété et définit également la PacketSize propriété.In turn, the SqlConnection class inherits this property, and also defines the PacketSize property.

Notes pour les responsables de l’implémentation

Pour promouvoir la cohérence entre les fournisseurs de données .NET Framework, nommez la classe qui hérite sous la forme PrvClassnamePrv est le préfixe uniforme affecté à toutes les classes dans un espace de noms de fournisseur de données .NET Framework spécifique.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. Par exemple, Sql est le préfixe de le SqlConnection classe dans le System.Data.SqlClient espace de noms.For example, Sql is the prefix of the SqlConnection class in the System.Data.SqlClient namespace.

Lorsque vous héritez de la IDbConnection interface, vous devez implémenter les constructeurs suivants :When you inherit from the IDbConnection interface, you should implement the following constructors:

ÉlémentItem DescriptionDescription
PrvConnection()PrvConnection() Initialise une nouvelle instance de la classe PrvConnection.Initializes a new instance of the PrvConnection class.

PrvConnection (chaîne connectionString)PrvConnection(string connectionString) Initialise une nouvelle instance de la classe PrvConnection en fonction d’une chaîne contenant la chaîne de connexion.Initializes a new instance of the PrvConnection class when given a string containing the connection string.

Propriétés

ConnectionString ConnectionString ConnectionString ConnectionString

Obtient ou définit la chaîne utilisée pour ouvrir une base de données.Gets or sets the string used to open a database.

ConnectionTimeout ConnectionTimeout ConnectionTimeout ConnectionTimeout

Obtient la durée d'attente préalable à l'établissement d'une connexion avant que la tentative ne soit abandonnée et qu'une erreur ne soit générée.Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.

Database Database Database Database

Obtient le nom de la base de données active ou de la base de données à utiliser une fois la connexion ouverte.Gets the name of the current database or the database to be used after a connection is opened.

State State State State

Obtient l’état actuel de la connexion.Gets the current state of the connection.

Méthodes

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

Commence une transaction de base de données.Begins a database transaction.

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

Commence une transaction de base de données avec la valeur de champ IsolationLevel spécifiée.Begins a database transaction with the specified IsolationLevel value.

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

Modifie la base de données actuelle pour un objet Connection ouvert.Changes the current database for an open Connection object.

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

Ferme la connexion à la base de données.Closes the connection to the database.

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

Crée et retourne un objet Command associé à la connexion.Creates and returns a Command object associated with the connection.

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

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

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

Ouvre une connexion de base de données avec les paramètres spécifiés par la propriété ConnectionString de l’objet de connexion spécifique au fournisseur.Opens a database connection with the settings specified by the ConnectionString property of the provider-specific Connection object.

S’applique à