Freigeben über


SqlConnection-Klasse

Stellt eine offene Verbindung mit einer SQL Server-Datenbank dar. Diese Klasse kann nicht geerbt werden.

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

Syntax

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

Hinweise

Ein SqlConnection-Objekt stellt eine eindeutige Sitzung für eine SQL Server-Datenquelle dar. Bei einem Client-/Server-Datenbanksystem entspricht dies einer Netzwerkverbindung mit dem Server. SqlConnection wird in Verbindung mit SqlDataAdapter und SqlCommand verwendet, um die Leistung beim Verbinden mit einer Microsoft SQL Server-Datenbank zu verbessern. Verwenden Sie bei allen SQL Server-Produkten von Drittanbietern und bei anderen von OLE DB unterstützten Datenquellen OleDbConnection.

Wenn Sie eine Instanz von SqlConnection erstellen, werden alle Eigenschaften auf die Anfangswerte festgelegt. Eine Liste dieser Werte finden Sie unter dem SqlConnection-Konstruktor.

Wenn die SqlConnection den Gültigkeitsbereich verlässt, bleibt sie offen. Daher müssen Sie die Verbindung explizit schließen, indem sie Close oder Dispose aufrufen. Close und Dispose sind funktionell äquivalent. Wenn der Verbindungspoolingwert Pooling auf true oder yes festgelegt wurde, wird die zugrunde liegende Verbindung an den Verbindungspool zurückgeschickt. Wenn andererseits Pooling auf false oder no festgelegt wurde, wird die zugrunde liegende Verbindung zum Server tatsächlich geschlossen.

Um sicherzustellen, dass die Verbindungen immer geschlossen werden, öffnen Sie die Verbindung innerhalb eines using-Blocks, wie im folgenden Codefragment gezeigt. Dadurch wird sichergestellt, dass die Verbindung automatisch geschlossen wird, wenn der Code den Block verlässt.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

Hinweis

Anwendungen mit hoher Leistung können Sie nur mithilfe von Verbindungspooling bereitstellen. Wenn Sie jedoch den .NET Framework-Datenanbieter für SQL Server verwenden, müssen Sie das Verbindungspooling nicht aktivieren, da es vom Anbieter automatisch verwaltet wird. Sie können aber einige Einstellungen ändern. Weitere Informationen finden Sie unter Verwenden von Verbindungspooling.

Wenn von der Methode, die einen SqlCommand ausführt, eine SqlException generiert wird, bleibt die SqlConnection geöffnet, sofern der Schweregrad 19 oder kleiner ist. SqlConnection wird in der Regel ab dem Schweregrad 20 geschlossen. Die Benutzer können die Verbindung aber erneut öffnen und fortfahren.

Anwendungen, die eine Instanz des SqlConnection-Objekts erstellen, können mithilfe von deklarativen oder imperativen Sicherheitsanforderungen festlegen, dass alle direkten und indirekten Aufrufer über die entsprechende Berechtigung für den Code verfügen müssen. SqlConnection verwendet für Sicherheitsanforderungen das SqlClientPermission-Objekt. Benutzer können mit dem SqlClientPermissionAttribute-Objekt prüfen, ob ihr Code über die entsprechenden Berechtigungen verfügt. Benutzer und Administratoren können darüber hinaus mit Sicherheitsrichtlinientool für den Codezugriff (Caspol.exe) die Sicherheitsrichtlinien auf Computer-, Benutzer- und Organisationsebene ändern. Weitere Informationen finden Sie unter Sicherheit in .NET Framework. Ein Beispiel für die Verwendung von Sicherheitsanforderungen finden Sie unter Codezugriffssicherheit und ADO.NET.

Hinweis

Wenn Sie Microsoft .NET Framework, Version 1.0, verwenden, ist der benannte FullTrust-Berechtigungssatz erforderlich, um über Open eine Verbindung mit SQL Server herzustellen. Dies gilt nicht, wenn Sie .NET Framework, Version 1.1 oder höher, verwenden. Weitere Informationen finden Sie unter Anfordern von Berechtigungen und Benannte Berechtigungssätze.

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

Thema Position
Gewusst wie: Herstellen von Verbindungen mit SQL Server-Datenbanken Datenzugriff in Visual Studio
Gewusst wie: Herstellen von Verbindungen mit SQL Server-Datenbanken Datenzugriff in Visual Studio

Beispiel

Im folgenden Beispiel werden eine SqlCommand und eine SqlConnection erstellt. Die SqlConnection wird geöffnet und als Connection für den SqlCommand festgelegt. Anschließend wird ExecuteNonQuery aufgerufen, und die Verbindung wird geschlossen. Dafür wird an ExecuteNonQuery eine Verbindungszeichenfolge und eine Abfragezeichenfolge übergeben, die eine Transact-SQL-INSERT-Anweisung ist.

Private Sub OpenSqlConnection()
    Dim connectionString As String = GetConnectionString()
    Using connection As New SqlConnection(connectionString)
        connection.Open()
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
        Console.WriteLine("State: {0}", connection.State)
    End Using
End Sub

Private Function GetConnectionString() As String
    ' To avoid storing the connection string in your code,  
    ' you can retrieve it from a configuration file, using the
    ' System.Configuration.ConfigurationSettings.AppSettings property
    Return "Data Source=(local);Database=AdventureWorks;" _
      & "Integrated Security=SSPI;"
End Function
private static void OpenSqlConnection()
{
    string connectionString = GetConnectionString();
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("State: {0}", connection.State);
    }
}

static private string GetConnectionString()
{
    // To avoid storing the connection string in your code, 
    // you can retrieve it from a configuration file, using the 
    // System.Configuration.ConfigurationSettings.AppSettings property 
    return "Data Source=(local);Initial Catalog=AdventureWorks;"
        + "Integrated Security=SSPI;";
}

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbConnection
        System.Data.SqlClient.SqlConnection

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 CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

SqlConnection-Member
System.Data.SqlClient-Namespace

Weitere Ressourcen

Verbinden und Abrufen von Daten mit ADO.NET
Verwenden des .NET Framework-Datenanbieters für SQL Server