ADO.Net et bases de données sous Visual Basic.Net

Ce document présente les concepts fondamentaux d'ADO.Net et son utilisation pour accéder et manipuler des bases de données sous Visual Basic.Net. Il s'adresse aux étudiants et développeurs débutants souhaitant comprendre les bases de l'accès aux données dans le Framework .Net, en particulier avec les fournisseurs de données et les objets clés d'ADO.Net.

D'après le document ADO.Net et bases de données sous Visual Basic.Net

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

ADO.Net et bases de données sous Visual Basic.Net

Document source

ADO.Net et bases de données sous Visual Basic.Net

Programming, Databases, ADO.Net · PDF · 23 pages

Afficher l'aperçu du document

Consulter le document original →

Ce document présente les concepts fondamentaux d'ADO.Net et son utilisation pour accéder et manipuler des bases de données sous Visual Basic.Net. Il s'adresse aux étudiants et développeurs débutants souhaitant comprendre les bases de l'accès aux données dans le Framework .Net, en particulier avec les fournisseurs de données et les objets clés d'ADO.Net.

Introduction à ADO.Net

ADO (ActiveX Data Object) est une bibliothèque logicielle de Microsoft qui fournit une interface d'accès aux données dans l'environnement Windows. Elle permet aux programmes clients d'accéder et de manipuler des données stockées dans des fichiers ou sur des serveurs de bases de données.

ADO.Net est la version moderne et intégrée dans le Framework .Net. Il s'agit d'un ensemble de classes, structures et types qui gèrent l'accès aux sources de données de manière efficace et sécurisée.

Les fournisseurs de données (Providers) dans ADO.Net

L'accès aux bases de données nécessite le chargement d'un fournisseur de données, qui assure la communication avec un type spécifique de base de données. Le Framework .Net propose par défaut quatre fournisseurs :

  • SQL Server : pour SQL Server 7 et versions supérieures. Namespace : System.Data.SqlClient
  • OLE DB : pour les SGBD ne disposant pas d'un fournisseur spécifique, comme Access. Namespace : System.Data.OleDb
  • ODBC : similaire à OLE DB. Namespace : System.Data.Odbc
  • Oracle : pour les bases Oracle. Namespace : System.Data.OracleClient

Les objets de base d'ADO.Net

Les fournisseurs de données offrent quatre objets essentiels :

  1. Connection : établit la connexion avec le serveur de base de données.
  2. Command : permet d'exécuter une ou plusieurs instructions SQL.
  3. DataReader : offre un accès en lecture seule aux données.
  4. DataAdapter : assure le transfert des données entre la source et un objet DataSet, et permet de mettre à jour la base en fonction des modifications locales.

Modes de fonctionnement dans ADO.Net

Mode connecté

Dans ce mode, l'application maintient une connexion permanente avec la source de données. La connexion est ouverte au début de l'application et fermée à sa fermeture.

Ce mode facilite le contrôle des utilisateurs travaillant sur les données. Le DataReader est utilisé pour lire les données en mode lecture seule, garantissant que les données sont toujours à jour. Ce mode est particulièrement adapté aux applications temps réel.

Mode non connecté

Dans ce mode, la connexion à la base est temporaire : elle est établie pour extraire ou mettre à jour des données, puis fermée.

L'utilisateur travaille localement avec les données via un DataSet, qui peut lire et écrire dans la base grâce à un DataAdapter. L'objet Command sert à envoyer des ordres SQL pour modifier la base ou à exécuter des requêtes SELECT pour remplir le DataSet.

Inconvénients : les données ne sont pas toujours à jour, ce qui peut entraîner des conflits lors des mises à jour.

Mode connecté avec le provider OLEDB (Access)

Le mode connecté permet de lire rapidement des enregistrements dans une base Access via le provider OLEDB Jet 4. Les étapes principales sont :

  1. Importer les namespaces System.Data et System.Data.OleDb.
  2. Créer un objet OleDbConnection.
  3. Créer un objet OleDbCommand.
  4. Affecter la requête SQL (SELECT) à la propriété CommandText de l'objet Command.
  5. Ouvrir la connexion.
  6. Créer un objet OleDbDataReader via objCmd.ExecuteReader().
  7. Parcourir les enregistrements avec une boucle utilisant la méthode Read() du DataReader.
  8. Fermer la connexion.

Exemple : récupérer les contacts des clients

Supposons une base Access nommée Achat (fichier NWIND.mdb) contenant une table Clients. Pour récupérer les contacts :

Imports System.Data
Imports System.Data.OleDb

Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND.mdb")
Dim cmd As New OleDbCommand("SELECT ContactName, Phone FROM Clients", conn)

conn.Open()
Dim reader As OleDbDataReader = cmd.ExecuteReader()

While reader.Read()
    Console.WriteLine("Contact: " & reader("ContactName") & ", Téléphone: " & reader("Phone"))
End While

reader.Close()
conn.Close()

La méthode Read() avance la lecture à l'enregistrement suivant, retournant True s'il y a encore des données, sinon False pour sortir de la boucle.

Méthodes et propriétés utiles

Classe DataReader

  • GetOrdinal(nom_champ) : retourne l'indice du champ nommé.
  • GetName(i) : retourne le nom du champ à l'indice i.
  • HasRows : indique si le DataReader contient des enregistrements (True) ou non (False).
  • FieldCount : nombre de champs dans l'enregistrement.

Classe Command

  • ExecuteScalar() : récupère le résultat d'une requête SQL retournant une seule valeur (ex. COUNT, AVG, MIN, MAX, SUM).
  • CommandType : indique le type de commande à exécuter. Valeurs possibles :
    • CommandType.Text : exécute une requête SQL classique.
    • CommandType.StoredProcedure : exécute une procédure stockée.
    • CommandType.TableDirect : retourne toutes les lignes d'une table.

Exemple : afficher le nombre de clients et lister les pays

Dim cmdCount As New OleDbCommand("SELECT COUNT(*) FROM Clients", conn)
Dim nombreClients As Integer = CInt(cmdCount.ExecuteScalar())

Dim cmdPays As New OleDbCommand("SELECT DISTINCT Country FROM Clients", conn)
Dim readerPays As OleDbDataReader = cmdPays.ExecuteReader()

While readerPays.Read()
    Console.WriteLine(readerPays("Country"))
End While

readerPays.Close()

Modification des données dans la base

Les modifications s'effectuent via les instructions SQL INSERT, UPDATE et DELETE. Ces commandes ne retournent pas de résultats.

Étapes pour modifier les données :

  1. Créer un objet OleDbCommand avec la requête SQL de modification.
  2. Exécuter la commande avec la méthode ExecuteNonQuery().

La méthode ExecuteNonQuery() retourne le nombre d'enregistrements affectés par l'instruction SQL.

Exemple : insérer un nouveau client

Dim cmdInsert As New OleDbCommand("INSERT INTO Clients (ContactName, Country) VALUES ('Dupont', 'France')", conn)
Dim nbLignes As Integer = cmdInsert.ExecuteNonQuery()
Console.WriteLine(nbLignes & " enregistrement(s) inséré(s).")

Glossaire des termes clés

  • ADO (ActiveX Data Object) : bibliothèque Microsoft pour accéder aux données.
  • ADO.Net : bibliothèque d'accès aux données intégrée au Framework .Net.
  • Provider (fournisseur de données) : composant assurant la communication avec un type spécifique de base de données.
  • Connection : objet qui établit la connexion avec la base de données.
  • Command : objet qui exécute des instructions SQL.
  • DataReader : objet permettant un accès en lecture seule aux données.
  • DataAdapter : objet qui gère le transfert des données entre la base et un DataSet.
  • DataSet : structure de données locale permettant de manipuler des données hors connexion.
  • ExecuteReader() : méthode qui exécute une commande et retourne un DataReader.
  • ExecuteScalar() : méthode qui exécute une commande et retourne une valeur unique.
  • ExecuteNonQuery() : méthode qui exécute une commande ne retournant pas de données (INSERT, UPDATE, DELETE).
  • CommandType : propriété définissant le type de commande (texte, procédure stockée, table directe).

Points clés à retenir

  • ADO.Net fournit une architecture flexible pour accéder aux bases de données en mode connecté ou non connecté.
  • Les fournisseurs de données sont spécifiques à chaque type de base (SQL Server, OLE DB, ODBC, Oracle).
  • Les objets principaux sont Connection, Command, DataReader et DataAdapter.
  • Le mode connecté utilise DataReader pour un accès rapide et à jour aux données.
  • Le mode non connecté utilise DataSet et DataAdapter pour travailler localement avec les données.
  • Les modifications dans la base s'effectuent via des commandes SQL exécutées avec ExecuteNonQuery().
  • Les requêtes paramétrées et les procédures stockées peuvent être utilisées via la propriété CommandType.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions