Partilhar via


IDbConnection Interface

Definição

Representa uma conexão aberta com uma fonte de dados e é implementada por provedores de dados .NET que acessam bancos de dados relacionais.

public interface class IDbConnection : IDisposable
public interface IDbConnection : IDisposable
type IDbConnection = interface
    interface IDisposable
Public Interface IDbConnection
Implements IDisposable
Derivado
Implementações

Exemplos

O exemplo a seguir cria instâncias das classes SqlCommand derivadas e SqlConnection. O SqlConnection é aberto e definido como o Connection .SqlCommand Em seguida, o exemplo chama ExecuteNonQuerye fecha a conexão. Para fazer isso, é ExecuteNonQuery passada uma cadeia de conexão e uma cadeia de caracteres de consulta que é uma instrução INSERT 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

Comentários

A IDbConnection interface permite que uma classe herdada implemente uma classe Connection, que representa uma sessão exclusiva com uma fonte de dados (por exemplo, uma conexão de rede com um servidor). Para obter mais informações sobre classes de conexão, consulte Conectar-se a uma fonte de dados.

Um aplicativo não cria uma instância da IDbConnection interface diretamente, mas cria uma instância de uma classe que herda IDbConnection.

As classes herdadas IDbConnection devem implementar todos os membros herdados e, normalmente, definir membros adicionais para adicionar funcionalidade específica do provedor. Por exemplo, a IDbConnection interface define a ConnectionTimeout propriedade. Por sua vez, a SqlConnection classe herda essa propriedade e também define a PacketSize propriedade.

Notas aos Implementadores

Para promover a consistência entre os provedores de dados do .NET Framework, nomeie a classe herdada no formulário PrvClassname em que Prv é o prefixo uniforme fornecido a todas as classes em um namespace específico do provedor de dados do .NET Framework. Por exemplo, Sql é o prefixo da SqlConnection classe no System.Data.SqlClient namespace.

Ao herdar da IDbConnection interface, você deve implementar os seguintes construtores:

Item Descrição
PrvConnection() Inicializa uma nova instância da classe PrvConnection.
PrvConnection(string connectionString) Inicializa uma nova instância da classe PrvConnection quando determinada uma cadeia de caracteres que contém a cadeia de conexão.

Propriedades

Nome Description
ConnectionString

Obtém ou define a cadeia de caracteres usada para abrir um banco de dados.

ConnectionTimeout

Obtém o tempo de espera (em segundos) ao tentar estabelecer uma conexão antes de encerrar a tentativa e gerar um erro.

Database

Obtém o nome do banco de dados atual ou do banco de dados a ser usado depois que uma conexão é aberta.

State

Obtém o estado atual da conexão.

Métodos

Nome Description
BeginTransaction()

Inicia uma transação de banco de dados.

BeginTransaction(IsolationLevel)

Inicia uma transação de banco de dados com o valor especificado IsolationLevel .

ChangeDatabase(String)

Altera o banco de dados atual para um objeto aberto Connection .

Close()

Fecha a conexão com o banco de dados.

CreateCommand()

Cria e retorna um objeto Command associado à conexão.

Dispose()

Executa tarefas definidas pelo aplicativo associadas à liberação, liberação ou redefinição de recursos não gerenciados.

(Herdado de IDisposable)
Open()

Abre uma conexão de banco de dados com as configurações especificadas pela ConnectionString propriedade do objeto Connection específico do provedor.

Aplica-se a