IDbConnection IDbConnection IDbConnection IDbConnection Interface

Definition

Stellt eine offene Verbindung mit einer Datenquelle dar und wird von den .NET Framework-Datenanbietern implementiert, die auf relationale Datenbanken zugreifen.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
Abgeleitet
Implementiert

Beispiele

Das folgende Beispiel erstellt Instanzen von abgeleiteten Klassen, SqlCommand und SqlConnection.The following example creates instances of the derived classes, SqlCommand and SqlConnection. Die SqlConnection wird geöffnet, und legen Sie als die Connection für die SqlCommand.The SqlConnection is opened and set as the Connection for the SqlCommand. Das Beispiel ruft dann ExecuteNonQuery, und schließt die Verbindung.The example then calls ExecuteNonQuery, and closes the connection. Zu diesem Zweck die ExecuteNonQuery übergeben wird, eine Verbindungszeichenfolge und eine Abfragezeichenfolge, die eine Transact-SQL INSERT-Anweisung ist.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

Hinweise

Die IDbConnection Schnittstelle ermöglicht eine erbende Klasse zum Implementieren einer Connection-Klasse, eine eindeutige Sitzung mit einer Datenquelle (z. B. eine Netzwerkverbindung mit einem Server stellt).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). Weitere Informationen zu Verbindungsklassen, finden Sie unter Herstellen einer Verbindung mit einer Datenquelle.For more information about Connection classes, see Connecting to a Data Source.

Eine Anwendung erstellt eine Instanz der keine der IDbConnection -Schnittstelle direkt, sondern erstellt eine Instanz einer Klasse, die erbt IDbConnection.An application does not create an instance of the IDbConnection interface directly, but creates an instance of a class that inherits IDbConnection.

Klassen, die erben IDbConnection alle geerbten Member implementieren müssen, und definieren Sie in der Regel zusätzliche Member, um anbieterspezifische Funktionen hinzuzufügen.Classes that inherit IDbConnection must implement all inherited members, and typically define additional members to add provider-specific functionality. Z. B. die IDbConnection Schnittstelle definiert die ConnectionTimeout Eigenschaft.For example, the IDbConnection interface defines the ConnectionTimeout property. Im Gegenzug die SqlConnection Klasse erbt von dieser Eigenschaft und definiert auch die PacketSize Eigenschaft.In turn, the SqlConnection class inherits this property, and also defines the PacketSize property.

Hinweise für Ausführende

Benennen Sie die erbende Klasse in das Formular zur Förderung der Konsistenz zwischen .NET Framework-Datenanbieter PrvClassname , in denen Prv ist das einheitliche Präfix für alle Klassen in einem bestimmten .NET Framework Data Provider-Namespace.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. Z. B. Sql ist das Präfix der der SqlConnection -Klasse in der System.Data.SqlClient Namespace.For example, Sql is the prefix of the SqlConnection class in the System.Data.SqlClient namespace.

Beim Erben von der IDbConnection -Schnittstelle, implementieren Sie die folgenden Konstruktoren:When you inherit from the IDbConnection interface, you should implement the following constructors:

ElementItem Beschreibung Description
PrvConnection()PrvConnection() Initialisiert eine neue Instanz der PrvConnection-Klasse.Initializes a new instance of the PrvConnection class.

PrvConnection (Zeichenfolge "ConnectionString")PrvConnection(string connectionString) Initialisiert eine neue Instanz der-PrvConnection-Klasse, wenn eine Zeichenfolge mit der Verbindungszeichenfolge angegeben.Initializes a new instance of the PrvConnection class when given a string containing the connection string.

Eigenschaften

ConnectionString ConnectionString ConnectionString ConnectionString

Ruft die Zeichenfolge ab, mit der eine Datenbank geöffnet wird, oder legt diese fest.Gets or sets the string used to open a database.

ConnectionTimeout ConnectionTimeout ConnectionTimeout ConnectionTimeout

Ruft die Zeit ab, die beim Verbindungsaufbau gewartet werden soll, bis der Versuch beendet und ein Fehler generiert wird.Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.

Database Database Database Database

Ruft den Namen der aktuellen Datenbank oder der nach dem Öffnen einer Verbindung zu verwendenden Datenbank ab.Gets the name of the current database or the database to be used after a connection is opened.

State State State State

Ruft den aktuellen Zustand der Verbindung ab.Gets the current state of the connection.

Methoden

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

Beginnt eine Datenbanktransaktion.Begins a database transaction.

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

Beginnt eine Datenbanktransaktion mit dem angegebenen IsolationLevel-Wert.Begins a database transaction with the specified IsolationLevel value.

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

Ändert die aktuelle Datenbank für ein offenes Connection-Objekt.Changes the current database for an open Connection object.

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

Schließt die Verbindung mit der Datenbank.Closes the connection to the database.

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

Erstellt ein Command-Objekt, das der Verbindung zugeordnet ist, und gibt dieses zurück.Creates and returns a Command object associated with the connection.

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

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

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

Öffnet eine Datenbankverbindung mit den Einstellungen, die durch die ConnectionString-Eigenschaft des anbieterspezifischen Verbindungsobjekts angegebenen werden.Opens a database connection with the settings specified by the ConnectionString property of the provider-specific Connection object.

Gilt für: