| 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!