IDbConnection IDbConnection IDbConnection IDbConnection Interface

Definición

Representa una conexión abierta a un origen de datos y se implementa mediante proveedores de datos .NET Framework que acceden a bases de datos relacionales.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
Derivado
Implementaciones

Ejemplos

En el ejemplo siguiente se crea instancias de las clases derivadas, SqlCommand y SqlConnection.The following example creates instances of the derived classes, SqlCommand and SqlConnection. El SqlConnection se abre y se establece como el Connection para el SqlCommand.The SqlConnection is opened and set as the Connection for the SqlCommand. El ejemplo llama a ExecuteNonQueryy cierra la conexión.The example then calls ExecuteNonQuery, and closes the connection. Para lograr esto, el ExecuteNonQuery se pasa una cadena de conexión y una cadena de consulta que es una instrucción INSERT de Transact-SQL.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

Comentarios

El IDbConnection interfaz permite que una clase heredera implementar una clase de conexión, que representa una única sesión con un origen de datos (por ejemplo, una conexión de red a un servidor).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). Para obtener más información acerca de las clases de conexión, consulte conectarse a un origen de datos.For more information about Connection classes, see Connecting to a Data Source.

Una aplicación no crea una instancia de la IDbConnection interfaz directamente, sino que crea una instancia de una clase que herede IDbConnection.An application does not create an instance of the IDbConnection interface directly, but creates an instance of a class that inherits IDbConnection.

Las clases que heredan IDbConnection debe implementar todos los miembros heredados y suelen definir miembros adicionales para agregar funcionalidad específica del proveedor.Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality. Por ejemplo, el IDbConnection interfaz define el ConnectionTimeout propiedad.For example, the IDbConnection interface defines the ConnectionTimeout property. A su vez, el SqlConnection clase hereda de esta propiedad y también define la PacketSize propiedad.In turn, the SqlConnection class inherits this property, and also defines the PacketSize property.

Notas a los implementadores

Para promover la coherencia entre los proveedores de datos de .NET Framework, asigne el nombre de la clase heredada en el formulario PrvClassname donde Prv es el prefijo uniforme que se asigna a todas las clases en un espacio de nombres del proveedor de datos de .NET Framework específico.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. Por ejemplo, Sql es el prefijo de la SqlConnection clase en el System.Data.SqlClient espacio de nombres.For example, Sql is the prefix of the SqlConnection class in the System.Data.SqlClient namespace.

Al heredar de la IDbConnection interfaz, debe implementar los constructores siguientes:When you inherit from the IDbConnection interface, you should implement the following constructors:

ElementoItem DescripciónDescription
PrvConnection()PrvConnection() Inicializa una nueva instancia de la clase PrvConnection.Initializes a new instance of the PrvConnection class.

PrvConnection (cadena connectionString)PrvConnection(string connectionString) Inicializa una nueva instancia de la clase PrvConnection cuando se especifica una cadena que contiene la cadena de conexión.Initializes a new instance of the PrvConnection class when given a string containing the connection string.

Propiedades

ConnectionString ConnectionString ConnectionString ConnectionString

Obtiene o establece la cadena que se utiliza para abrir una base de datos.Gets or sets the string used to open a database.

ConnectionTimeout ConnectionTimeout ConnectionTimeout ConnectionTimeout

Obtiene el tiempo de espera para intentar establecer una conexión antes de detenerse y generar un error.Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.

Database Database Database Database

Obtiene el nombre de la base de datos actual o de la que se va a utilizar una vez que se abre la conexión.Gets the name of the current database or the database to be used after a connection is opened.

State State State State

Obtiene el estado actual de la conexión.Gets the current state of the connection.

Métodos

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

Inicia una transacción de base de datos.Begins a database transaction.

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

Inicia una transacción de base de datos con el valor de IsolationLevel especificado.Begins a database transaction with the specified IsolationLevel value.

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

Cambia la base de datos actual para un objeto Connection abierto.Changes the current database for an open Connection object.

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

Cierra la conexión con la base de datos.Closes the connection to the database.

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

Crea y devuelve un objeto Command asociado a la conexión.Creates and returns a Command object associated with the connection.

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

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

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

Abre una conexión de base de datos con la configuración especificada por la propiedad ConnectionString del objeto Connection específico del proveedor.Opens a database connection with the settings specified by the ConnectionString property of the provider-specific Connection object.

Se aplica a