PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024
Contenu du Chapitre IV u Gestion des données avec ADO.NET –Accès aux bases de données avec ADO.NET –Accès aux données d’une base de données par programme –Accès aux données par le WEB
Gestion des données avec ADO.NET (Accès aux bases de données) u ADO (Active Data Objects) est une librairie qui fournit un ensemble de services pour les applications qui veulent interagir avec des bases de données pouvant être locales (sur l'ordinateur de l'application) ou distribuées sur d'autres ordinateurs (Remote). u ADO est basé sur une architecture déconnectée: le système se connecte sur la base de données, il extrait les données qui concerne l'application et referme la connexion. u Cette approche par défaut est choisie pour améliorer les performances lorsque les données sont partagées par plusieurs applications (il est aussi possible d’avoir une connexion permanente). u Les données sont représentées dans l'application par un objet de type DataSet. u Lorsque l'application se termine, la base de données est mise à jour à partir du DataSet. u Un objet de type DataAdapter est responsable de la connexion et des transferts de données entre le DataSet et la base de données.
Gestion des données avec ADO.NET (Accès aux bases de données) u Accès aux données:
Gestion des données avec ADO.NET (Accès aux bases de données) u Accès aux données –Data Adapter object »Agit comme un intermédiaire entre la base de données sur le disque et des représentations déconnectées en mémoire de cette base de données appelées DataSet et DataTable –DataSet »Peut être constituées d’une ou plusieurs tables avec leurs liens –DataTable »Une table provenant de la base de données
Gestion des données avec ADO.NET (Accès aux bases de données) u Accès aux données –En programmation ADO.Net typique, les DataSet DataTable sont déconnectés –Représentations de la base de données en mémoire vive –Ces représentations sont manipulées en mémoire –Les modifications sont ensuite utilisées pour la mise à jour de la base de données sur disque
Gestion des données avec ADO.NET (Accès aux bases de données) u Accès aux données –Deux types de data adapters en VB.NET »oleDbDataAdapter u Conçu pour travailler avec une gamme diverses de SGBD comme Access u Adapter le plus générique »sqlDbDataAdapter u Conçu spécifiquement pour travailler avec des bases de données Microsoft SQL Server u Adapter le plus spécifique
Gestion des données avec ADO.NET (Accès aux bases de données) u Accès aux données –Contrôle dans la boîte à outils
Gestion des données avec ADO.NET (Accès aux bases de données) u Accès aux données –Étapes de création d’un adapteur (OleDbDataAdapter) »Établir une connection à une base de données »Générer une requête SQL permettant la sélection de champs à partir d’une base de données »Genérer un Dataset
Gestion des données avec ADO.NET (Accès aux bases de données) u Exemple: base de données et DataGrid: Les prochains programmes expliquent brièvement comment manipuler les données dans une base de données. D'abord, il faut avoir créer une base de données avec ACCCESS :
Gestion des données avec ADO.NET (Accès aux bases de données) u Enregistrements de la table Employés
Gestion des données avec ADO.NET (Accès aux bases de données) u Nous désirons créer un programme qui permet d'afficher et de modifier le contenu de la table Employés. Le programme montre aussi comment accéder aux données de cette table dans un programme VB. u La première étape de la conception de notre programme consiste à créer une connexion à la base de données ACCESS. u La connexion à la base de données se fait avec l'aide du contrôle "OleDbDataAdapter" de la section Data de la boîte à outils u Ce contrôle est comme les autres contrôles, sélectionné avec un double-click:
Gestion des données avec ADO.NET (Accès aux bases de données) u Ajout du contrôle OleDbDataAdapter:
Gestion des données avec ADO.NET (Accès aux bases de données) u Ajout du contrôle OleDbDataAdapter:
Gestion des données avec ADO.NET (Accès aux bases de données) u Après l’ajout du contrôle OleDbDataAdapter, VS démarre l'outil de configuration suivant:
Gestion des données avec ADO.NET (Accès aux bases de données) u Sélection de la source des données (ex: db1_V2000.mdb):
Gestion des données avec ADO.NET (Accès aux bases de données) u Ensuite, nous pressons sur le bouton "New Connection", et sélectionnons le pourvoyeur (provider) de données:
Gestion des données avec ADO.NET (Accès aux bases de données) u Ensuite, nous sélectionnons la base de données source:
Gestion des données avec ADO.NET (Accès aux bases de données) u Nous avons ainsi choisi la source des données:
Gestion des données avec ADO.NET (Accès aux bases de données) u Sélection du type de requête:
Gestion des données avec ADO.NET (Accès aux bases de données) u Sélection du type de requête:
Gestion des données avec ADO.NET (Accès aux bases de données) u Ensuite, nous pressons sur le bouton "Query Builder...", pour démarrer le générateur de requêtes SQL:
Gestion des données avec ADO.NET (Accès aux bases de données) u Nous sélectionnons les tables impliquées dans la requête:
Gestion des données avec ADO.NET (Accès aux bases de données) u La requête SQL se compose alors:
Gestion des données avec ADO.NET (Accès aux bases de données) u Nous sélectionnons les champs:
Gestion des données avec ADO.NET (Accès aux bases de données) u Requête SQL résultante:
Gestion des données avec ADO.NET (Accès aux bases de données) u Résultat de la configuration du contrôle OleDbDataAdapter:
Gestion des données avec ADO.NET (Accès aux bases de données) u Génération du Dataset: Observez au bas de la zone des propriétés, nous retrouvons "Generate Dataset..." qui est en bleu (click) et qui permet d'ajouter un Dataset associé à l'objet OleDbDataAdapter1:
Gestion des données avec ADO.NET (Accès aux bases de données) u Génération du Dataset:
Gestion des données avec ADO.NET (Accès aux bases de données) u Génération du Dataset:
Gestion des données avec ADO.NET (Accès aux bases de données) u Ajout du contrôle DataGrid: Insérons un contrôle de type DataGrid (Windows Forms) sur la forme principale de notre programme:
Gestion des données avec ADO.NET (Accès aux bases de données) u Ensuite, faites le lien entre la grille (DataGrid) et le Dataset avec les propriétés DataSource et DataMember:
Gestion des données avec ADO.NET (Accès aux bases de données) u Insérons alors, 2 Textbox et deux Boutons dans la forme: –Un premier Textbox qui permet d’afficher le nombre de rangées (enregistrements) dans le DataGrid. –Un second Textbox qui affiche le contenu de la colonne 2 de la rangée 1. Ce qui correspond à l’attribut prénom du second employé dans la table Employés. –Un premier Bouton, qui lance le chargement du DataGrid. –Un second Bouton qui permet la sauvegarde de ce DataGrid.
Gestion des données avec ADO.NET (Accès aux bases de données) u Forme résultante:
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé à la forme: Remplissage du DataSet Création d’un tableau Nombre d’enregistrements
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé à la forme (suite): Mise à jour du DataSet
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme:
Gestion des données avec ADO.NET (Accès aux bases de données) u Maintenant, nous pourrions modifier (ajout/effacement d’enregistrements) le contenu d’une base de données (ex: Books):
Gestion des données avec ADO.NET (Accès aux bases de données) u Créons une forme dans laquelle nous insérons d’abord un contrôle OleDbDataAdapter, auquel nous indiquons par l’entremise d’une requête SQL appropriée, quelles sont les données à charger dans un DataSet.
Gestion des données avec ADO.NET (Accès aux bases de données) u Complétons la forme (Books):
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé (Form1_Load())
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé (ButtonCHARGER_Click())
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé (ButtonAJOUTER_Click()) Création d’un nouvel enregistrement
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé (ButtonMOFIFIER_Click())
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé (ButtonEFFACER_Click()) Effacer un enregistrement
Gestion des données avec ADO.NET (Accès aux bases de données) u Code associé (ButtonSAUVER_Click())
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Forme au démarrage)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Charger un enregistrement)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Modifier un enregistrement)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Sauver la modification, redémarrage, et chargement de l’enregistrement 29)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Table Books dans ACCESS)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Ajouter un enregistrement)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Après la sauvegarde et un redémarrage)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Chargement de l’enregistrement 30)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Effacer le dernier enregistrement introduit et sauvegarde)
Gestion des données avec ADO.NET (Accès aux bases de données) u Exécution du programme (Démarrage et chargement de l’enregistrement 30 correspondant au dernier enregistrement effacé)
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Formes générales d’une requête SQL »SELECT nomchamps »FROM nomtables »WHERE condition »ORDER BY nomchamps; »Utilisez le caractère * pour indiquer tous les champs »SELECT * FROM nomtables
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (Définir la source des données à afficher DataSet => DataGrid)
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (DataGrid)
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (DataGrid après une opération Search)
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (DataGrid et autres boutons de recherche)
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (DataGrid et résultats d’une recherche par Late Fees)
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (Exemples de requêtes) »SELECT * FROM Members WHERE Late_Fees > 10 »SELECT * FROM Members ORDER By Phone_Number [DESC] »SELECT * FROM Members WHERE Phone_Number = ‘ ’
Gestion des données avec ADO.NET (Accès aux bases de données) u Recherche d’enregistrements à partir de requêtes SQL codées dans une application VB.NET –Exemple d’une base de données de location de DVD (Code de la recherche par Late Fees) Sub FindLateFees(ByVal decAmount As Decimal) Dim SelString As String DsVintage1.Clear() SelString = “SELECT * “ & _ “FROM Members “ & _ “WHERE Late_Fees > Cstr(decAmount)” MembersAdapter.SelectCommand.CommandText = SelString MembersAdapter.Fill(DsVintage1, “Members”) End Sub
Gestion des données avec ADO.NET (Accès aux bases de données) u Dans les versions précédentes de Visual Studio, l'accès aux bases de données était plus simple, mais moins général. u Avec la version.NET, nous pouvons créer une Connexion qui identifie la base de données, un DataAdapter qui fait le lien entre notre programme et le programme-serveur de la base de données et un Dataset qui représente les données d’une table (ex: Employé) dans notre programme. u Cette architecture sert à supporter les applications plus complexes de type multi-tiers, incluant les applications Web sur l'Internet.
Gestion des données avec ADO.NET (Accès aux bases de données) u Les applications multi-tiers: