Herstellen einer Verbindung
Zum Herstellen einer Verbindung mit Microsoft SQL Server verwenden Sie das SqlConnection-Objekt des .NET Framework-Datenanbieters für SQL Server. Wenn Sie eine Verbindung mit einer OLE DB-Datenquelle herstellen möchten, verwenden Sie das OleDbConnection-Objekt des .NET Framework-Datenanbieters für OLE DB. Wenn Sie eine Verbindung mit einer ODBC-Datenquelle herstellen möchten, verwenden Sie das OdbcConnection-Objekt des .NET Framework-Datenanbieters für ODBC. Zum Herstellen einer Verbindung mit einer Oracle-Datenquelle verwenden Sie das OracleConnection-Objekt des .NET Framework-Datenanbieters für Oracle. 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 ebenso die Close
-Methode oder Dispose
-Methode des Verbindungsobjekts des von Ihnen in Anspruch genommenen Anbieters 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. Weitere Informationen finden Sie unter OLE DB-, ODBC- und Oracle-Verbindungspooling.
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).
Verbindung mit SQL Server herstellen
Der .NET Framework-Datenanbieter für SQL Server unterstützt ein Verbindungszeichenfolgenformat ähnlich dem Verbindungszeichenfolgenformat für OLE DB (ADO). 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.
' Assumes connectionString is a valid connection string.
Using connection As New SqlConnection(connectionString)
connection.Open()
' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Do work here.
}
Integrierte Sicherheit und ASP.NET
Die integrierte Sicherheit von SQL Server (auch bekannt als vertrauenswürdige Verbindungen) trägt zum Schutz beim Herstellen von Verbindungen mit SQL Server bei, da in der Verbindungszeichenfolge Benutzer-ID und Kennwort nicht verfügbar gemacht werden, und ist daher die empfohlene Methode für die Authentifizierung einer Verbindung. Bei der integrierten Sicherheit wird die aktuelle Sicherheitsidentität oder das aktuelle Sicherheitstoken des ausführenden Prozesses verwendet. Bei Desktop-Anwendungen handelt es sich dabei i. d. R. um 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.
Herstellen einer Verbindung mit einer OLE DB-Datenquelle
Der .NET Framework-Datenanbieter für OLE DB stellt Verbindungen mit Datenquellen, die mit OLE DB verfügbar gemacht wurden (über SQLOLEDB, den OLE DB-Anbieter für SQL Server), mithilfe des OleDbConnection-Objekts her.
Bei dem .NET Framework-Datenanbieter für OLE DB ist das Verbindungszeichenfolgenformat mit dem in ADO verwendeten Verbindungszeichenfolgenformat bis auf folgende Ausnahmen identisch:
Das Provider-Schlüsselwort ist erforderlich.
Die Schlüsselwörter URL, Remote Provider und Remote Server werden nicht unterstützt.
Weitere Informationen zu OLE DB-Verbindungszeichenfolgen finden Sie in dem Artikel ConnectionString. Sie können auch den OleDbConnectionStringBuilder verwenden, um zur Laufzeit Verbindungszeichenfolgen zu erstellen.
Hinweis
Das OleDbConnection-Objekt unterstützt nicht das Festlegen oder Abrufen dynamischer, für einen OLE DB-Anbieter spezifischer Eigenschaften. Es werden nur Eigenschaften unterstützt, die in der Verbindungszeichenfolge für den OLE DB-Anbieter übergeben werden können.
Im folgenden Codebeispiel wird veranschaulicht, wie eine Verbindung mit einer OLE DB-Datenquelle erstellt und geöffnet wird.
' Assumes connectionString is a valid connection string.
Using connection As New OleDbConnection(connectionString)
connection.Open()
' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
connection.Open();
// Do work here.
}
Verwenden Sie keine UDL-Dateien (Universal Data Link)
Sie können Verbindungsinformationen für eine OleDbConnection in einer UDL-Datei (Universal Data Link) bereitstellen, davon wird jedoch abgeraten. UDL-Dateien sind nicht verschlüsselt und machen Informationen zur Verbindungszeichenfolge im Klartext verfügbar. Da es sich bei einer UDL-Datei um eine externe Ressource der Anwendung handelt, kann sie nicht mit .NET Framework gesichert werden.
Herstellen einer Verbindung mit einer ODBC-Datenquelle
Der .NET Framework-Datenanbieter für ODBC stellt Verbindungen mit Datenquellen, die mit ODBC verfügbar gemacht wurden, mithilfe des OdbcConnection-Objekts bereit.
Das Verbindungszeichenfolgenformat des .NET Framework-Datenanbieters für ODBC wurde so konzipiert, dass es weitestgehend mit dem ODBC-Verbindungszeichenfolgenformat übereinstimmt. Sie können auch einen ODBC-Datenquellennamen (DSN, Data Source Name) angeben. Weitere Informationen zum OdbcConnection-Objekt finden Sie unter OdbcConnection.
Im folgenden Codebeispiel wird veranschaulicht, wie eine Verbindung mit einer ODBC-Datenquelle erstellt und geöffnet wird.
' Assumes connectionString is a valid connection string.
Using connection As New OdbcConnection(connectionString)
connection.Open()
' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (OdbcConnection connection =
new OdbcConnection(connectionString))
{
connection.Open();
// Do work here.
}
Herstellen einer Verbindung mit einer Oracle-Datenquelle
Der .NET Framework-Datenanbieter für Oracle stellt Verbindungen mit Oracle-Datenquellen mithilfe des OracleConnection-Objekts bereit.
Das Verbindungszeichenfolgenformat des .NET Framework-Datenanbieters für Oracle wurde so konzipiert, dass es weitestgehend mit dem Verbindungszeichenfolgenformat des OLE DB-Anbieters für Oracle (MSDAORA) übereinstimmt. Weitere Informationen zum OracleConnection-Objekt finden Sie unter OracleConnection.
Im folgenden Codebeispiel wird veranschaulicht, wie eine Verbindung mit einer Oracle-Datenquelle erstellt und geöffnet wird.
' Assumes connectionString is a valid connection string.
Using connection As New OracleConnection(connectionString)
connection.Open()
' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (OracleConnection connection =
new OracleConnection(connectionString))
{
connection.Open();
// Do work here.
}