Freigeben über


Herstellen einer Verbindung

Gilt für: .NET Framework .NET .NET Standard

Herunterladen von ADO.NET

Zum Herstellen einer Verbindung mit Microsoft SQL Server verwenden Sie das SqlConnection-Objekt des Microsoft SqlClient-Datenanbieters für SQL Server. Informationen zum sicheren Speichern und Abrufen von Verbindungszeichenfolgen finden Sie unter Schützen von Verbindungsinformationen.

Schließen von Verbindungen

Es wird empfohlen, die Verbindung nach Verwendung stets zu schließen, damit sie in den Pool zurückgegeben werden kann. Der Using-Block in Visual Basic oder C# verwirft automatisch die Verbindung, wenn der Code den Block verlässt, auch im Falle einer unbehandelten Ausnahme. Weitere Informationen finden Sie unter using-Anweisung und Using-Anweisung.

Sie können auch die Methoden Close oder Dispose des „Connection“-Objekts verwenden. Verbindungen, die nicht explizit geschlossen werden, werden möglicherweise dem Pool nicht hinzugefügt bzw. nicht an den Pool zurückgegeben. Beispielsweise wird eine Verbindung, die sich nicht mehr im Gültigkeitsbereich befindet, aber nicht explizit geschlossen wurde, nur dann an den Verbindungspool zurückgegeben, wenn die maximale Poolgröße erreicht wurde und die Verbindung immer noch gültig ist.

Hinweis

Rufen Sie in der Finalize-Methode Ihrer Klasse Close oder Dispose nicht für Connection, DataReader oder ein anderes verwaltetes Objekt auf. Geben Sie in einer Finalize-Methode nur nicht verwaltete Ressourcen frei, die der Klasse direkt gehören. Wenn die Klasse keine nicht verwalteten Ressourcen besitzt, definieren Sie in der Klasse keine Finalize-Methode. Weitere Informationen finden Sie unter Garbage Collection.

Hinweis

Wenn eine Verbindung aus dem Verbindungspool abgerufen oder an diesen zurückgegeben wird, werden keine Anmelde- und Abmeldeereignisse auf dem Server ausgelöst, da die Verbindung bei der Rückgabe an den Verbindungspool nicht geschlossen wird. Weitere Informationen finden Sie unter SQL Server-Verbindungspooling (ADO.NET).

Herstellen einer Verbindung mit SQL Server

Gültige Zeichenfolgenformatnamen und -werte finden Sie in der Beschreibung der ConnectionString-Eigenschaft des SqlConnection-Objekts. Sie können auch die SqlConnectionStringBuilder-Klasse verwenden, um zur Laufzeit syntaktisch gültige Verbindungszeichenfolgen zu erstellen. Weitere Informationen finden Sie in Connection String Builders (Verbindungszeichenfolgengeneratoren).

Im folgenden Codebeispiel wird veranschaulicht, wie eine Verbindung mit einer SQL Server-Datenbank erstellt und geöffnet wird.

using Microsoft.Data.SqlClient;

class Program1
{
    static void Main()
    {
        string s = GetConnectionString();

        OpenSqlConnection(s);
        Console.ReadLine();
    }

    private static void OpenSqlConnection(string connectionString)
    {
        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;";
    }
}

Integrierte Sicherheit und ASP.NET

Die integrierte SQL Server-Sicherheit (auch als vertrauenswürdige Verbindungen bekannt) trägt zum Schutz bei der Herstellung einer Verbindung mit SQL Server bei, da sie keine Benutzer-ID und kein Kennwort in der Verbindungszeichenfolge verfügbar macht und die empfohlene Methode zur Authentifizierung einer Verbindung ist. Bei der integrierten Sicherheit wird die aktuelle Sicherheitsidentität oder das aktuelle Sicherheitstoken des ausführenden Prozesses verwendet. Bei Desktopanwendungen ist diese Identität in der Regel die Identität des aktuell angemeldeten Benutzers.

Die Sicherheitsidentität für ASP.NET-Anwendungen kann auf eine von mehreren verschiedenen Optionen festgelegt werden. Informationen zum besseren Verständnis der in ASP.NET-Anwendungen beim Herstellen einer Verbindung mit SQL Server verwendeten Sicherheitsidentität finden Sie unter ASP.NET-Identitätswechsel, ASP.NET-Authentifizierung und Gewusst wie: Zugreifen auf SQL Server über die integrierte Windows-Sicherheit.

Weitere Informationen