Frage

Ich bin die Reinigung der Datareader in einem alten .NET 1.1-Projekt, die ich geerbt.

Der bisherige Entwickler die Datenzugriffsschicht so codiert, dass die meisten der DAL Methoden SqlDataReaders zurückgegeben (also es dem Anrufer zu verlassen ordnungsgemäß aufrufen, um die .Close () oder .Dispose () -Methode).

Ich habe auf eine Situation kommen, obwohl, wo ein Anrufer nicht, um die zurück SqlDataReader zu kontrollieren (und daher Entsorgung nicht davon richtig). Sehen Sie den Code unten:

Datenzugriffsmethode:

Public Shared Function UpdateData() As SqlDataReader
   ...

   drSQL = cmdSQL.ExecuteReader(CommandBehavior.CloseConnection)

   Return drSQL

End Function

Telefonvorwahl:

...
DataAccessLayer.UpdateData()
...

Wie Sie sehen können, wird die Rufmethode nicht erhalten / die zurück SqlDataReader fangen. Also, was passiert? Ist das SqlDataReader immer noch da draußen und offen? Oder macht es automatisch erhalten Müll gesammelt, da nichts es adressiert?

Ich konnte nicht einen Weg zu debuggen denken und testen diese. Wenn jemand irgendwelche Ideen oder Vorschläge hat das wäre toll.

War es hilfreich?

Lösung

ich glaube, dass es geschlossen wird erhalten, aber erst, wenn die Müllsammler bekommen ‚rund um sie, die nicht für eine sehr lange Zeit sein können ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top