Partager via


IDbConnection Interface

Définition

Représente une connexion ouverte à une source de données ; est implémenté par les fournisseurs de données .NET qui accèdent aux bases de données relationnelles.

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. est SqlConnection ouvert et défini comme pour Connection le SqlCommand. L’exemple appelle ExecuteNonQueryensuite et ferme la connexion. Pour ce faire, le ExecuteNonQuery est passé une chaîne de connexion et une chaîne de requête qui est une instruction TRANSACT-SQL INSERT.

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

L’interface IDbConnection permet à une classe héritée d’implémenter une classe Connection, qui représente une session unique avec une source de données (par exemple, une connexion réseau à un serveur). Pour plus d’informations sur les classes De connexion, consultez Connexion à une source de données.

Une application ne crée pas de instance de l’interface IDbConnection directement, mais crée un instance d’une classe qui hérite IDbConnection.

Les classes qui héritent IDbConnection doivent implémenter tous les membres hérités et généralement définir des membres supplémentaires pour ajouter des fonctionnalités spécifiques au fournisseur. Par exemple, l’interface IDbConnection définit la ConnectionTimeout propriété . À son tour, la SqlConnection classe hérite de cette propriété et définit également la PacketSize propriété .

Notes pour les responsables de l’implémentation

Pour promouvoir la cohérence entre les fournisseurs de données .NET Framework, nommez la classe héritée sous la forme PrvClassnamePrv est le préfixe uniforme donné à toutes les classes d’un espace de noms de fournisseur de données .NET Framework spécifique. Par exemple, Sql est le préfixe de la SqlConnection classe dans l’espace de System.Data.SqlClient noms.

Lorsque vous héritez de l’interface IDbConnection , vous devez implémenter les constructeurs suivants :

Élément Description
PrvConnection() Initialise une nouvelle instance de la classe PrvConnection.
PrvConnection(string connectionString) Initialise une nouvelle instance de la classe PrvConnection lorsqu’une chaîne contenant le chaîne de connexion est donnée.

Propriétés

ConnectionString

Obtient ou définit la chaîne utilisée pour ouvrir une base de données.

ConnectionTimeout

Obtient le délai d’attente (en secondes) lors de la tentative d’établissement d’une connexion avant de mettre fin à la tentative et de générer une erreur.

Database

Obtient le nom de la base de données active ou de la base de données à utiliser une fois la connexion ouverte.

State

Obtient l’état actuel de la connexion.

Méthodes

BeginTransaction()

Commence une transaction de base de données.

BeginTransaction(IsolationLevel)

Commence une transaction de base de données avec la valeur de champ IsolationLevel spécifiée.

ChangeDatabase(String)

Modifie la base de données actuelle pour un objet Connection ouvert.

Close()

Ferme la connexion à la base de données.

CreateCommand()

Crée et retourne un objet Command associé à la connexion.

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.

(Hérité de IDisposable)
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.

S’applique à