ADO.NET CRÉATION D UN DATASET

Documents pareils
Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Les Utilisateurs dans SharePoint

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

BIRT (Business Intelligence and Reporting Tools)

Paginer les données côté serveur, mettre en cache côté client

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Encryptions, compression et partitionnement des données

ADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.

Gestion de stock pour un magasin

TP3 : Creation de tables 1 seance

Introduction à Expression Web 2

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Rapport de Mini-Projet en ArcGIS Engine

Compte Rendu d intégration d application

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

LES ACCES ODBC AVEC LE SYSTEME SAS

TP Contraintes - Triggers

PROGRAMMATION EVENEMENTIELLE sur EXCEL

CREATION WEB DYNAMIQUE

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

UTILISER UN SITE COLLABORATIF

MODE OPERATOIRE OPENOFFICE BASE

MODE D EMPLOI DU MODULE D E-COMMERCE

Procédure d'installation de SQL Server Express 2008

Publipostage : Envoi des vœux par

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

PHP 4 PARTIE : BASE DE DONNEES

Présentation du PL/SQL

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Styler un document sous OpenOffice 4.0

Unity Real Time 2.0 Service Pack 2 update

Prezi. Table des matières

Comment l utiliser? Manuel consommateur

8. Gestionnaire de budgets

Comment créer et utiliser une fonction

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

SOMMAIRE. 3. Comment Faire? Description détaillée des étapes de configuration en fonction du logiciel de messagerie... 3

USAGE DU MODULE DE NEWSLETTER ACAJOOM

Comment utiliser FileMaker Pro avec Microsoft Office

Lancez le setup, après une phase de décompression, la fenêtre d installation des prérequis apparaît, il faut les installer :

1. Introduction Création d'une requête...2

Modélisation et Gestion des bases de données avec mysql workbench

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Créer un publipostage avec Word 2007.

Création et Gestion des tables

Europresse.com. Pour bibliothèque d enseignement Pour bibliothèque publique. Consulter facilement la presse. Guide version 1.

Gestion du cache dans les applications ASP.NET

Importation des données dans Open Office Base

Historisation des données

Formation. Module WEB 4.1. Support de cours

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Langage SQL : créer et interroger une base

Le Langage SQL version Oracle

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Guide de développement de «WorkFLows» avec SharePoint Designer 2013

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Sauvegarder sa messagerie Outlook 2010

SOMMAIRE... 1 ESPACE DU CLUB...

Si vous estimez le contenu de cette page pertinent, faites +1 ou j'aime : 0 Like 330 likes. Sign Up to see what your friends like.

Gestion des réunions dans Outlook 2007

Bases de données. Table des matières. Introduction. (ReferencePlus.ca)

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

BASES DE DONNEES TP POSTGRESQL

Les différents types de relation entre les tables

Utiliser un tableau de données

La Clé informatique. Formation Excel XP Aide-mémoire

Utilisation du logiciel ModellingSpace

Manuel d installation de Business Objects Web Intelligence Rich Client.

Utilitaires méconnus de StrataFrame

Guide utilisateur pour le déblocage de cartes et/ou la modification d un code PIN

Mysql. Les requêtes préparées Prepared statements

Bases de Données relationnelles et leurs systèmes de Gestion

INTERCONNEXION ENT / BCDI / E - SIDOC

Le Langage De Description De Données(LDD)

Guide d utilisation de la clé mémoire USB

Guide de l utilisateur Communauté virtuelle de pratique en gestion intégrée des risques

WINDOWS SHAREPOINT SERVICES 2007

Création de Sous-Formulaires

2- Relation entre Writer et Calc dans le mailing

Les BASES de DONNEES dans WampServer

Cours Bases de données 2ème année IUT

Utilisation de l éditeur.

Excel 2007 Niveau 3 Page 1

Visual Basic et les Bases de Données

Connexion à SQL server

SQL Server Installation Center et SQL Server Management Studio

Microsoft Project UNIVERSITÉ HASSAN II AIN CHOCK

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3?

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Objectifs du TP : Initiation à Access


Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

Écriture de journal. (Virement de dépense)

Transcription:

ADO.NET Ado.net est une technologie d'accès aux données qui fournit un ensemble des classes permettant d'accéder aux données relationnelles. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté. LE MODE CONNECTÉ Ce mode classique maintient la connexion à la base de données, il permet de créer un mécanisme de "curseur" permettant de parcourir les données ligne à ligne. Ado.net ne propose qu'un accès en lecture -en avant seulement- avec ce mode. Il est approprié pour parcourir des tables volumineuses rapidement. LE MODE DÉCONNECTÉ C'est la grande nouveauté de l'architecture.net. Après une connexion et le chargement de données, tout se passe en mémoire. Ceci libère les ressources du serveur de données, par contre le mécanisme de cohérence et d'intégrité des données est exigeant. Nous allons étudier ce dernier type d'accès. Dotnet propose un ensemble de classes. Une classe générique, DataSet, est au centre du dispositif ; c'est cette classe qui servira de conteneur en mémoire des tables et des requêtes. Nous allons partir d'un cas pour décrire les classes mises en œuvre. CRÉATION D UN DATASET La base de données exemple est créée sous SQl server, son nom est «Etudiant». Ceci fait nous créons un nouveau projet de nom «AccèsDonnées». Nous ajoutons à ce projet une source de données. Pour cela on sélectionne le projet «AccèsDonnées» et puis dans les menus sur «Données», on choisit «Ajouter une source de données». Dans l assistant qui apparaît on sélectionne «Base de données», puis on fait suivant. Sur l écran suivant, on choisit «Dataset», puis suivant. Sur le pop-up suivant, on clique sur le bouton «Nouvelle connexion». Pour la source de données, on choisit MICROSOFT SQL SERVER, on sélectionne son serveur Sql Server 2008. On saisit ensuite un compte utilisateur connu de Sql Server 2008 et ayant des droits suffisants sur la base de données "Etudiant". On teste la connexion. Si tout fonctionne on fait «OK». 1

Demander ensuite à inclure les données sensibles dans la chaine de connexion. Puis à enregistrer la connexion. Et enfin, sélectionner la table Etudiant de la base de données «Etudiant». Le «dataset» est maintenant créé, il reste à le configurer en fonction des besoins de l application. LE DATASET, LES DATATABLES ET LES TABLEADAPTERS Le concepteur affiche deux classes : une classe Etudiant (datatable) et une classe EtudiantTableAdapter (tableadapter). La structure d un groupe de données (DataSet) est très proche de celle d une base de données relationnelle dans la mesure où un Dataset est constitué d une hiérarchie de classes représentant des tables (DataTable), des lignes (DataRow), des colonnes (DataColumn), des contraintes (Constraint) et même des relations (Relation) : 2

La seule chose importante à comprendre est qu on travaille ici en mémoire, et qu on va manipuler des objets instanciation de ces classes. C est pourquoi il n y aucun lien entre un DataSet et ses sources de données physiques. Le DataSet instancié est donc un objet qui réside en mémoire et qui correspond à une copie locale des données d'une base. Il contient les tables d'une base mais aussi les relations entre ces différentes tables et les contraintes appliquées aux données. Le modèle objet du DataSet a les trois collections suivantes : La collection "DataTableCollection" : Cette collection peut contenir de zéro à n objets de type DataTable. Chaque objet DataTable représente une table d'une source de données. Chaque DataTable est constituée d'une collection Columns et d'une collection Rows qui peuvent contenir respectivement de zéro à n objets DataRow et DataColumn. La collection "DataRelationCollection" : Cette collection peut contenir de zéro à n objets de type DataRelation. Un objet DataRelation défini une relation parent-enfant entre deux tables à partir des valeurs des clés étrangères. La collection "ExtendedProperties" : Cette collection correspond à un objet de type PropertyCollection qui peut contenir de zéro à n propriétés définies par un utilisateur. Cette collection peut être utilisée afin de stocker des informations personnalisées liées au DataSet utilisé (date et heure de génération des données, ordre select passé pour générer les données.). Exemple de déclaration (pour notre projet) d'un dataset et d'une datatable : 'on declare le dataset Private dataset As EtudiantDataSet ' on declare la datatable etudiant dans le dataset Private tableetudiant As EtudiantDataSet.EtudiantDataTable Et l'instanciation : dataset = New EtudiantDataSet tableetudiant = New EtudiantDataSet.EtudiantDataTable 3

La classe TableAdapter, pour nous EtudiantTableAdapter qu'il faudra instancier, est celle qui permet de relier la source de données physique à l objet mémoire DataSet. Le DataSet est indépendant de la source de données. Il ne la connait pas. C est l'objet instanciation de la classe TableAdapter, qui fait tout le travail de communication avec la base, à la fois de connexion et à la fois de requêtage pour extraire ou mettre à jour les données. C est un objet qui comprend 4 sous-objets de commande, chargés de «commander» la base, chacun dédié à un type de requête vers la base. L objet SelectCommand gère l extraction de données tandis que les trois autres objets s occupent des autres types de requêtes (Insert, Update et Delete). Le DataSet n a aucune connexion directe avec la base de données physique. Remarque : Dans le schéma ci-dessus, on parle de DataAdapter et non de TableAdapter. Simplement, retenez qu un TableAdapter est une classet DataAdapter mais plus riche que la classe de base. Elle est générée pour nous par l Assistant Configuration de sources de données pour nous permettre d aller plus loin en matière d interaction avec la base de données. Exemple de déclaration d'un tableadapter : ' on declare le table adapter pour accéder à notre base de données table étudiant Private tableadaptateretudiant As EtudiantDataSetTableAdapters.EtudiantTableAdapter Et l'instanciation : tableadaptateretudiant = New EtudiantDataSetTableAdapters.EtudiantTableAdapter 4

La lecture de données et le remplissage d'un DataSet : La méthode Fill de l'objet TableAdapter ou tableadaptateretudiant pour nous, permet d'extraire les données d'une source de données en exécutant la requête SQL spécifiée dans la propriété SelectCommand. Elle prend en paramètre le DataSet instancié et le nom de la DataTable instanciée (tableetudiant pour nous) à remplir avec les données retournées. Dans notre exemple voici une méthode de notre classe Etudiant: Public Function liretouslesetudiants() As Integer 'accès à la base de données tableadaptateretudiant.fill(tableetudiant) Return tableetudiant.count End Function On récupère donc tous les étudiants dans l'objet "tableetudiant". La mise à jour de données avec un DataAdapter et un DataSet : La méthode Update de l'objet TableAdapter ou tableadaptateretudiant pour nous, permet de répercuter sur une source de données les modifications effectuées dans un DataSet instancié. Cette méthode admet un objet DataSet qui contient les données modifiées et un objet DataTable optionnel qui contient les modifications à extraire. Dans notre exemple voici un extrait d'une méthode de notre classe Etudiant permettant de supprimer un étudiant de la base de données : Dim numligne As Integer Dim numerreur As Integer Dim nombre As Integer ' remplir la table avec le contenu de la base nombre = liretouslesetudiants() 'on recherche la ligne correspondant au numéro de l étudiant pour cela on trie tableetudiant.defaultview.sort = "numero ASC" 'ici on récupère le numéro de ligne correspond au numéro de l étudiant numligne = tableetudiant.defaultview.find(numero) 'si la clef n'est pas trouvée dans la table If numligne = -1 Then numerreur = 1 Else numerreur = 0 'Supression de la ligne tableetudiant.defaultview(numligne).delete() End If 'accès à la base de données par appel à la couche persistance tableadaptateretudiant.update(tableetudiant) Return numerreur On marque donc comme supprimée la ligne de la tableetudiant concernant l'étudiant à supprimer avant de répercuter dans la base de données. Ici la tableetudiant contient tous les étudiants, on aurait pu imaginer de ne recharger la tableetudiant qu'avec l'étudiant à supprimer. Mais comment ADO.NET assure-t-il la relation entre les données d'un DataSet instancié et celles contenues dans une base de données? En réalité, lorsque la méthode Update est invoquée l'objet TableAdapter analyse les modifications effectuées au niveau de la collection DataRow. En fonction des modifications rencontrées, les 5

commandes InsertCommand, UpdateCommand et DeleteCommand sont appelées par l'objet TableAdapter, pour peu quelles soient définies. GÉNÉRER LES MÉTHODES UTILES À L APPLICATION AU SEIN DU DATAADAPTER On double clique sur le «DataSet.xsd». On sélectionne «EtudiantTableAdapter» et on clique droit pour choisir Ajouter. Un nouveau menu apparait permettant de définir toutes les requêtes dont nous pourrions avoir besoin dans notre application. Exercice : Justement dans cette application nous avons besoin de sélectionner tous les étudiants, sélectionner un étudiant par son numéro, mettre à jour les données d'un étudiant en connaissant sa clef, supprimer un étudiant en connaissant sa clef ou encore insérer un nouvel étudiant. Si vous avez tout compris, vous savez que dans les programmes nous allons travailler sur le DataSet instancié, mais que les commandes SQL nécessaires doivent être définies au niveau du TableAdapter pour répercuter les modifications faites sur le DataSet dans la base de données. Écrire les requêtes SQL nécessaires à notre application. Les intégrer dans le EtudiantTableAdapter. 6