Mon contrat actuel concerne une grande société de commerce électronique. Leur base de code dont les origines remontent à .Net 1.0 m'a pris par surprise pour contenir de nombreux problèmes qui augmentent le niveau d'odeur au-delà de la dernière merde que j'ai prise. Malgré cela et essayant de dissiper mon niveau de distraction, j'essaie gaiement d'ajouter des fonctionnalités pour résoudre d'autres problèmes ou étendre plus de conneries. Lorsque je touche le DAL/BLL, le temps nécessaire pour réparer ce qui précède sera effectué. Cependant, je voulais obtenir un vote de confiance de la part des experts pour avoir l'assurance de ne pas perdre de temps pour les clients ou pire d'avoir ma crédibilité rejetée en touchant «ce qui fonctionne». Bien sûr, les tests unitaires résoudraient ou au moins adouciraient cette inquiétude. Peut-être que cela devrait également être ajouté à wtf.com?Importance de la fermeture des objets SQLConnection lors de l'utilisation de l'objet SQLDataReader
Public Function GetSizeInfoBySite(ByVal siteID As String) As IList
Dim strSQL As String = "YES INLINE SQL!! :)"
Dim ci As CrapInfo
Dim alAnArrayList As ArrayList
Dim cn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim cmd As New SqlCommand(strSQL, cn)
cmd.Parameters.Add(New SqlParameter("@MySiteID", SqlDbType.NVarChar, 2)).Value = siteID
cn.Open()
Dim rs As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
While rs.Read()
ci = New CategoryInfo(rs("someID"), rs("someName"))
If IsNothing(alAnArrayList) Then
alAnArrayList = New ArrayList
End If
alAnArrayList.Add(ci)
End While
rs.Close()
Return CType(alAnArrayList, IList)
End Function
Quelqu'un voit-il des problèmes avec ce côté de la ligne SQL qui rend mon désabonnement de l'intestin? À tout le moins, n'emballeriez-vous pas d'habitude ce qui précède dans un essai/attraper/finalement que la plupart d'entre nous sait a été autour depuis .Net v1.0? Encore mieux ne serait-il pas sage de corriger avec les instructions Using? La fermeture de SQLDataReader encapsule-t-elle vraiment la fermeture automatique de la connexion?
Merci Joel! Surtout sur la liste générique du point T! – JohnL