I hate to ask this before the DotNet-Morons list is up and working, but
I'm sort of confused about this.
I have a project that has one connection, and 3 data adapters and 4 or 5
command objects.
The project has 2 timers.
tmrRequests fires every 10 seconds
tmrMonitor fires ever 10 minutes
Everything works fine at first but then eventually I start getting
errors in the eventlog that are: "There is already an open DataReader
associated with this Connection which must be closed first."
So something must be going wonky after a little while, and those errors,
once they start just continue every 10 seconds.
So when I'm working with the connection I do the following:
Try
Dim dsRunningParams As DataSet = New DataSet()
Dim table As DataTable
Dim row As DataRow
Dim rowIndex As Integer
If conReportDB.State = ConnectionState.Closed Then
conReportDB.Open()
daGetRunningParams.Fill(dsRunningParams)
conReportDB.Close()
.... work with data here...
Catch e as exception
If conReportDB.State = ConnectionState.Open Then
conReportDB.Close()
Finally
If conReportDB.State = ConnectionState.Open Then
conReportDB.Close()
End try
I thought that was sufficient to take care of everything, but apparently
something eventually stays attached somewhere and I'm not sure where.
All the code I have using the connection follows the same format as
shown above. Is there something I'm not doing to release things
properly?
Also... would this be happening randomly b/c the 10 minute timer
eventually collides with the 10second timer and they're both trying to
use the same connection? Is there a good way to avoid that or should I
establish another connection for that timer to use?
Again, sorry for the dumb question.
=Blain
You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.