Compartir por


IDbConnection Interfaz

Definición

Representa una conexión abierta a un origen de datos y la implementan los proveedores de datos de .NET que acceden a bases de datos relacionales.

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 crean instancias de las clases derivadas SqlCommand y SqlConnection. SqlConnection se abre y establece como para Connection .SqlCommand A continuación, el ejemplo llama a ExecuteNonQueryy cierra la conexión. Para ello, ExecuteNonQuery se pasa una cadena de conexión y una cadena de consulta que es una instrucción INSERT de Transact-SQL.

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

La IDbConnection interfaz permite que una clase heredada implemente una clase Connection, que representa una sesión única con un origen de datos (por ejemplo, una conexión de red a un servidor). Para obtener más información sobre las clases Connection, consulte Conexión a un origen de datos.

Una aplicación no crea una instancia de la IDbConnection interfaz directamente, sino que crea una instancia de una clase que hereda IDbConnection.

Las clases que heredan IDbConnection deben implementar todos los miembros heredados y normalmente definir miembros adicionales para agregar funcionalidad específica del proveedor. Por ejemplo, la IDbConnection interfaz define la ConnectionTimeout propiedad . A su vez, la SqlConnection clase hereda esta propiedad y también define la PacketSize propiedad .

Notas a los implementadores

Para promover la coherencia entre los proveedores de datos de .NET Framework, asigne un nombre a la clase heredada en el formulario PrvClassname donde Prv es el prefijo uniforme proporcionado a todas las clases de un espacio de nombres específico del proveedor de datos de .NET Framework. Por ejemplo, Sql es el prefijo de la SqlConnection clase en el System.Data.SqlClient espacio de nombres .

Al heredar de la IDbConnection interfaz, debe implementar los constructores siguientes:

Elemento Descripción
PrvConnection() Inicializa una nueva instancia de la clase PrvConnection.
PrvConnection(string connectionString) Inicializa una nueva instancia de la clase PrvConnection cuando se le asigna una cadena que contiene la cadena de conexión.

Propiedades

Nombre Description
ConnectionString

Obtiene o establece la cadena utilizada para abrir una base de datos.

ConnectionTimeout

Obtiene el tiempo de espera (en segundos) al intentar establecer una conexión antes de finalizar el intento y generar un error.

Database

Obtiene el nombre de la base de datos actual o de la base de datos que se va a usar después de abrir una conexión.

State

Obtiene el estado actual de la conexión.

Métodos

Nombre Description
BeginTransaction()

Inicia una transacción de base de datos.

BeginTransaction(IsolationLevel)

Comienza una transacción de base de datos con el valor especificado IsolationLevel .

ChangeDatabase(String)

Cambia la base de datos actual de un objeto abierto Connection .

Close()

Cierra la conexión a la base de datos.

CreateCommand()

Crea y devuelve un objeto Command asociado a la conexión.

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación, liberación o restablecimiento de recursos no administrados.

(Heredado de IDisposable)
Open()

Abre una conexión de base de datos con la configuración especificada por la ConnectionString propiedad del objeto Connection específico del proveedor.

Se aplica a