Freigeben über


OdbcConnection-Klasse

Stellt eine offene Verbindung mit einer Datenquelle dar.

Namespace: System.Data.Odbc
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public NotInheritable Class OdbcConnection
    Inherits DbConnection
    Implements ICloneable
'Usage
Dim instance As OdbcConnection
public sealed class OdbcConnection : DbConnection, ICloneable
public ref class OdbcConnection sealed : public DbConnection, ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable

Hinweise

Ein OdbcConnection-Objekt stellt eine eindeutige Verbindung mit einer Datenquelle dar, die mithilfe einer Verbindungszeichenfolge oder einem ODBC-Datenquellennamen (DSN) erstellt wurde. Bei Client-/Server-Datenbanksystemen entspricht dies einer Netzwerkverbindung mit dem Server. Abhängig von den vom systemeigenen ODBC-Treiber unterstützten Funktionen sind einige Methoden oder Eigenschaften eines OdbcConnection-Objekts möglicherweise nicht verfügbar.

Das OdbcConnection-Objekt verwendet systemeigene Ressourcen wie die ODBC-Umgebung und Verbindungshandles. Schließen Sie immer explizit alle geöffneten OdbcConnection-Objekte. Rufen Sie dazu Close oder Dispose auf, bevor das OdbcConnection-Objekt den Gültigkeitsbereich verlässt, oder platzieren Sie die Verbindung innerhalb einer Using-Anweisung. Andernfalls erfolgt die Freigabe dieser systemeigenen Ressourcen in der Garbage Collection. Möglicherweise erfolgt die Freigabe nicht sofort. Das kann dazu führen, dass die Ressourcen für den zugrunde liegenden Treiber knapp werden oder eine Höchstgrenze erreicht wird. Dadurch können gelegentlich Fehler auftreten. Beispielsweise können Maximum Connections-Fehler auftreten, während viele Verbindungen zum Löschen durch den Garbage Collector anstehen. Wenn die Verbindungen explizit geschlossen werden, können die systemeigenen Ressourcen besser ausgenutzt werden. Auf diese Weise wird die Skalierbarkeit und die Gesamtleistung der Anwendung verbessert.

Hinweis

Anwendungen mit hoher Leistung können Sie nur durch häufiges Verwenden von Verbindungspooling bereitstellen. Wenn Sie jedoch den .NET Framework-Datenanbieter für ODBC verwenden, müssen Sie das Verbindungspooling nicht aktivieren, da dieses vom Anbieter automatisch verwaltet wird.

Wenn die Ausführung einer der Execute-Methoden der OdbcCommand-Klasse zu einer schwerwiegenden OdbcException führt (z. B. mit einem SQL Server-Schweregrad von 20 oder höher), kann die OdbcConnection geschlossen werden. Die Benutzer können die Verbindung aber erneut öffnen und fortfahren.

Anwendungen, die eine Instanz des OdbcConnection-Objekts erstellen, können mithilfe von deklarativen oder imperativen Sicherheitsanforderungen festlegen, dass alle direkten und indirekten Aufrufer über ausreichende Berechtigungen für den Code verfügen müssen. OdbcConnection erstellt Sicherheitsanforderungen mithilfe des OdbcPermission-Objekts. Benutzer können mit dem OdbcPermissionAttribute-Objekt prüfen, ob ihr Code über die entsprechenden Berechtigungen verfügt. Benutzer und Administratoren können mithilfe des Sicherheitsrichtlinientools für den Codezugriff (Caspol.exe) auch Sicherheitsrichtlinien auf der Computer-, Benutzer- und Organisationsebene ändern. Weitere Informationen finden Sie unter Codezugriffssicherheit und ADO.NET.

Weitere Informationen über das Behandeln von Warn- und Informationsmeldungen von der Datenquelle finden Sie unter Arbeiten mit Connection-Ereignissen.

Beispiel

Im folgenden Beispiel werden ein OdbcCommand und eine OdbcConnection erstellt. Die OdbcConnection wird geöffnet und als Connection-Eigenschaft festgelegt. Anschließend wird ExecuteNonQuery aufgerufen, und die Verbindung wird geschlossen. Zu diesem Zweck wird ExecuteNonQuery eine Verbindungszeichenfolge und eine Abfragezeichenfolge übergeben, die eine SQL-INSERT-Anweisung ist.

Private Sub InsertRow(ByVal connectionString As String)

    Dim queryString As String = _
        "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
    Dim command As New OdbcCommand(queryString)

    Using connection As New OdbcConnection(connectionString)
        command.Connection = connection
        connection.Open()
        command.ExecuteNonQuery()

        ' The connection is automatically closed at 
        ' the end of the Using block.
    End Using
End Sub
static private void InsertRow(string connectionString)
{
    string queryString = 
        "INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
    OdbcCommand command = new OdbcCommand(queryString);

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        command.Connection = connection;
        connection.Open();
        command.ExecuteNonQuery();

        // The connection is automatically closed at 
        // the end of the Using block.
    }
}

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbConnection
        System.Data.Odbc.OdbcConnection

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

Siehe auch

Referenz

OdbcConnection-Member
System.Data.Odbc-Namespace

Weitere Ressourcen

Herstellen von Verbindungen zu Datenquellen