SqlDataReader: In hierdie scenario, sal die leser kry gesluit?
-
05-07-2019 - |
Vra
Ek skoonmaak van die DataReaders in 'n ou NET 1.1 projek wat ek geërf het.
Die vorige ontwikkelaar gekodeerde die data-toegang-laag in so 'n manier dat die meeste van die DAL metodes teruggekeer SqlDataReaders (dus laat dit tot die oproeper aan die .Close () of .Dispose () metodes behoorlik noem).
Ek het gekom oor 'n situasie, al is, waar 'n oproeper die teruggekeer SqlDataReader nie vang (en dus nie ontslae van dit behoorlik). Sien hieronder die kode:
Data Access Metode:
Public Shared Function UpdateData() As SqlDataReader
...
drSQL = cmdSQL.ExecuteReader(CommandBehavior.CloseConnection)
Return drSQL
End Function
Oproep-kode:
...
DataAccessLayer.UpdateData()
...
Soos jy kan sien, is die roeping metode nie ontvang / vang die teruggekeer SqlDataReader. So wat gebeur? Is dat SqlDataReader nog daar buite en oop? Of is dit outomaties kry vullis ingesamel sedert niks dit aanspreek?
Ek kon nie dink aan 'n manier om debug en toets dit. As iemand enige idees of voorstelle wat sal wonderlik wees.
Oplossing
Ek glo dat dit sal kry gesluit, maar nie tot die vullis-versamelaar kry 'n ronde om dit, wat nie kan wees vir 'n baie lang tyd ...