En Visual Basic, pour interagir avec les bases de données, on utilise généralement la bibliothèque ADO.NET. Les classes clés pour la connexion et l'accès aux données sont :
Connexion et fermeture de la connexion correctes :
Imports System.Data.SqlClient Using connection As New SqlConnection("connection_string_here") connection.Open() Using command As New SqlCommand("SELECT * FROM Users", connection) Using reader As SqlDataReader = command.ExecuteReader() While reader.Read() Console.WriteLine(reader("Username")) End While End Using ' Ferme le reader End Using End Using ' Ferme la connexion automatiquement
La pratique d'utilisation du bloc Using garantit la fermeture automatique de la connexion, même en cas d'erreurs. Cela est crucial pour éviter les fuites de connexions.
Quelle est la différence entre Dispose() et Close() pour SqlConnection, et faut-il appeler les deux méthodes ?
Réponse :
La méthode Close() ferme la connexion à la base, tandis que Dispose() libère toutes les ressources associées à l'objet de connexion. L'appel à Dispose() inclut l'appel à Close(). Par conséquent, si le bloc Using est utilisé, Dispose() est appelé automatiquement, et un appel séparé à Close() n'est pas nécessaire.
connection.Close() ' Ferme la connexion, mais l'objet existe toujours connection.Dispose() ' Libère toutes les ressources (recommandé d'appeler via Using)
Histoire
Sur le projet, de gros retards et des erreurs lors de la connexion à la base : les connexions étaient ouvertes manuellement, mais oubliées de se fermer, ce qui a conduit à l'épuisement du pool de connexions. Solution : introduction du bloc Using.
Histoire
Le développeur appelait uniquement Close(), et l'objet SqlConnection restait "suspendu" en mémoire. À long terme, cela a entraîné des fuites de ressources et un comportement imprévisible de l'application.
Histoire
Au lieu de travailler avec SqlConnection, OleDbConnection était utilisé pour travailler avec SQL Server par ignorance que c'était moins efficace et pouvait causer des problèmes de performance et de compatibilité. Après le passage à SqlConnection, la performance a augmenté de 30 %.