Forum: ASP.NET |
Thema:
Re: Feststellen ob Datareader offen ist |
Von:
Thomas Golla (
22.02.2005 13:23) |
Hi Stephan :-)
Ist zwar keine schöne Lösung, aber du könntest nachfolgende Funktion nutzen:
Public Function connection_has_open_datareader(ByVal con As System.data.SqlClient.SqlConnection) As Boolean
Dim com As New System.Data.SqlClient.SqlCommand("select 1", con)
Dim dr As System.Data.SqlClient.SqlDataReader
Try
dr = com.ExecuteReader ' Hier wird die Exception geworfen wenn es einen offenen datareader im con gibt
connection_has_open_datareader = False
Catch ex As Exception
connection_has_open_datareader = True
End Try
Return connection_has_open_datareader
End Function
Wie gesagt ... nicht schön ... aber funktioniert.
Was ich immer mache damit mir sowas nicht passiert ist folgendes:
...
Try
dread = com.ExecuteReader
If dread.HasRows = True Then
While dread.Read
...
End While
Else
...
End If
Catch ex As Exception
...
Finally
If Not dread Is Nothing Then If dread.IsClosed = False Then dread.Close()
If Not com Is Nothing Then com.Dispose()
End Try
...
Im finally Block schliesse ich immer den datareader ... klappt bisher ganz gut :-)
Lieben Gruß
Tom
Betreff |
Von |
Datum |
|
|
Re: Feststellen ob Datareader offen ist
Danke für den Tipp.<br>In meinem Projekt ist es das Problem, dass sich potetntiell 100 Benutzer eine DB Connection teilen, und dabei kommt es dann zu dem Fall, dass einer Warten muss weil ein anderer... |
|
|
|
|
|
Stephan
|
23.02.2005 08:00 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!