Problemet er, at din DataReader af en eller anden grund ikke lukkes. En undtagelse? Har metodebrugeren ikke husket at lukke DataReader?
En funktion, der returnerer en DataReader til at blive brugt uden for dens krop, efterlader ansvaret for at lukke den til ydre kode, så der er ingen garanti for, at Reader vil blive lukket. Hvis du ikke lukker læseren, kan du ikke genbruge forbindelsen, hvor den blev åbnet.
Så det er en meget dårlig idé at returnere en DataReader fra en funktion!
Du kan se en hel diskussion om dette emne her .
Se efter brugen af denne funktion (GetDataReader
), og kontroller, om der er garanti for, at læseren lukker. Og vigtigst af alt, at der ikke er nogen mulighed for, at denne kode kommer ind igen og bruger den samme samling til at åbne en ny DataReader, før den første lukkes. (Lad dig ikke vildlede af CommandBehavior.CloseConnection. Denne sørger kun for at lukke forbindelsen, når DataReader er lukket... kun hvis du ikke undlader at lukke den)