IDbConnection Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 PrvClassname
où Prv
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 |
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é |