IDbConnection Interfaccia

Definizione

Rappresenta una connessione aperta a un'origine dati e viene implementata dai provider di dati .NET che accedono a database relazionali.Represents an open connection to a data source, and is implemented by .NET 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
Derivato
Implementazioni

Esempio

Nell'esempio seguente vengono create istanze delle classi derivate, SqlCommand e SqlConnection .The following example creates instances of the derived classes, SqlCommand and SqlConnection. SqlConnectionViene aperto e impostato come Connection per l'oggetto SqlCommand .The SqlConnection is opened and set as the Connection for the SqlCommand. Nell'esempio viene quindi chiamata ExecuteNonQuery e chiusa la connessione.The example then calls ExecuteNonQuery, and closes the connection. A tale scopo, ExecuteNonQuery viene passata una stringa di connessione e una stringa di query che è un'istruzione Transact-SQL INSERT.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

Commenti

L' IDbConnection interfaccia consente a una classe che eredita di implementare una classe Connection che rappresenta una sessione univoca con un'origine dati, ad esempio una connessione di rete a un server.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). Per ulteriori informazioni sulle classi di connessione, vedere connessione a un'origine dati.For more information about Connection classes, see Connecting to a Data Source.

Un'applicazione non crea direttamente un'istanza dell' IDbConnection interfaccia, ma crea un'istanza di una classe che eredita IDbConnection .An application does not create an instance of the IDbConnection interface directly, but creates an instance of a class that inherits IDbConnection.

Le classi che ereditano IDbConnection devono implementare tutti i membri ereditati e in genere definiscono membri aggiuntivi per aggiungere funzionalità specifiche del provider.Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality. Ad esempio, l' IDbConnection interfaccia definisce la ConnectionTimeout Proprietà.For example, the IDbConnection interface defines the ConnectionTimeout property. A sua volta, la SqlConnection classe eredita questa proprietà e definisce anche la PacketSize Proprietà.In turn, the SqlConnection class inherits this property, and also defines the PacketSize property.

Note per gli implementatori

Per promuovere la coerenza tra .NET Framework provider di dati, denominare la classe che eredita nel formato in PrvClassname cui Prv è il prefisso uniforme assegnato a tutte le classi in uno specifico spazio dei nomi del provider di dati .NET Framework.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. Ad esempio, Sql è il prefisso della SqlConnection classe nello System.Data.SqlClient spazio dei nomi.For example, Sql is the prefix of the SqlConnection class in the System.Data.SqlClient namespace.

Quando si eredita dall' IDbConnection interfaccia, è necessario implementare i costruttori seguenti:When you inherit from the IDbConnection interface, you should implement the following constructors:

ElementoItem DescrizioneDescription
PrvConnection ()PrvConnection() Inizializza una nuova istanza della classe PrvConnection.Initializes a new instance of the PrvConnection class.
PrvConnection (stringa connectionString)PrvConnection(string connectionString) Inizializza una nuova istanza della classe PrvConnection quando viene fornita una stringa che contiene la stringa di connessione.Initializes a new instance of the PrvConnection class when given a string containing the connection string.

Proprietà

ConnectionString

Ottiene o imposta la stringa usata per aprire un database.Gets or sets the string used to open a database.

ConnectionTimeout

Ottiene il tempo di attesa (in secondi) mentre si tenta di stabilire una connessione prima di terminare il tentativo e generare un errore.Gets the time to wait (in seconds) while trying to establish a connection before terminating the attempt and generating an error.

Database

Ottiene il nome del database corrente o del database da usare dopo l'apertura della connessione.Gets the name of the current database or the database to be used after a connection is opened.

State

Ottiene lo stato corrente della connessione.Gets the current state of the connection.

Metodi

BeginTransaction()

Avvia una transazione di database.Begins a database transaction.

BeginTransaction(IsolationLevel)

Avvia una transazione di database con il valore specificato di IsolationLevel.Begins a database transaction with the specified IsolationLevel value.

ChangeDatabase(String)

Modifica il database corrente per un oggetto Connection aperto.Changes the current database for an open Connection object.

Close()

Chiude la connessione al database.Closes the connection to the database.

CreateCommand()

Crea e restituisce un oggetto Command associato alla connessione.Creates and returns a Command object associated with the connection.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Ereditato da IDisposable)
Open()

Apre una connessione di database con le impostazioni specificate dalla proprietà ConnectionString dell'oggetto Connection specifico del provider.Opens a database connection with the settings specified by the ConnectionString property of the provider-specific Connection object.

Si applica a