Ich verwende ADO.NET (.NET 1.1) in einer Legacy-App. Ich weiß, dass DataAdapter.Fill() Verbindungen öffnet und schließt, wenn die Verbindung nicht manuell geöffnet wurde, bevor sie an den DataAdapter übergeben wird.Schließt DataAdapter.Fill() die Verbindung, wenn eine Ausnahme ausgelöst wird?
Meine Frage: Schließt es auch die Verbindung, wenn die .Fill() eine Ausnahme verursacht? (aufgrund von SQL Server kann nicht erreicht werden, oder was auch immer). Verliert es eine Verbindung oder verfügt es über eine integrierte Schlussklausel, um sicherzustellen, dass die Verbindung geschlossen wird?
Codebeispiel:
Dim cmd As New SqlCommand
Dim da As New SqlDataAdapter
Dim ds As New DataSet
cmd.Connection = New SqlConnection(strConnection)
cmd.CommandText = strSQL
da.SelectCommand = cmd
da.Fill(ds)
Ohne es genau zu wissen, würde ich davon ausgehen, dass es aber tut. Sie können jedoch Reflector (http://www.red-gate.com/products/reflector/) verwenden, um in die Implementierung zu schauen und zu sehen, ob sie letztendlich implementiert. – AxelEckenberger