ProgrammationDéveloppeur VB.NET

Comment se fait la connexion aux bases de données en Visual Basic, quels classes ADO.NET sont utilisées pour travailler avec les données, et comment implémenter correctement la fermeture de la connexion ?

Réussissez les entretiens avec l'assistant IA Hintsage

Réponse.

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 :

  • SqlConnection — pour établir une connexion à une base SQL Server.
  • SqlCommand — pour envoyer des commandes SQL.
  • SqlDataReader — pour lire les données à partir du résultat de la requête.
  • SqlDataAdapter et DataSet — pour travailler avec des données en mémoire et prendre en charge le modèle déconnecté.

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.

Question piège.

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)

Exemples d'erreurs réelles dues à la méconnaissance des subtilités du sujet.


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 %.