Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Environnement de développement de programmation
Ma chaabane@fsegs rnu tnMohamed Amine CHAÂBANE
2012-2013
1M.A.CHAÂBANE
L t h l i NETLa technologie .NET
2M.A.CHAÂBANE
I. La Plate-forme .NET
La plate-forme .NET désigne globalement l’architecture technique etp g g qfonctionnelle sur laquelle repose une application développée en codemanagé.
L’ampleur de cette évolution va au-delà de celle que nous avonsconnus lors du passage de Windows 16 bits vers le monde 32 bits.p gCette évolution du passage en 32 bits a nécessitée la réécriture d’uncertain nombre de programme afin d’obtenir de meilleuresperformances et une plus grande stabilité du système.
Contrairement à la précédente évolution, le passage des applicationContrairement à la précédente évolution, le passage des applicationnatif sur la plate-forme .NET n’est pas obligatoire. L’interopérabilitéentre le monde binaire est assurée par le framework .NET.
3M.A.CHAÂBANE
p
I. La Plate-forme .NET
En effet, cette plateforme est le socle des applications d’une nouvelleère, plus adaptée aux besoins et aux technologies actuelles. Sacouverture va au-delà du poste client tel que nous le connaissons
j d’h i ’ d à l’i f i d d i ll ’ llaujourd’hui pour s’adresser à l’informatique de demain telle qu’elle sedessine actuellement.
L’informatique actuel doit être « agile » afin de s’adapter auxnouveaux besoins tout en consolidant l’existant. En plus des PC, duportable téléphonique, du PDA, on a besoin d’accéder au donnée viala télévision, un appareil HI-FI, une montre ou autre objet électrique.
Cela n’est qu’un début, car une des tendances actuelles est depermettre à chacun d’accéder à ses données quel que soit l’endroit
4M.A.CHAÂBANE
où il se trouve, mais aussi quel que soit le périphérique qu’il utilise.
I. La Plate-forme .NET
La plate-forme .NET est un ensemble de technologie et d’outilsfacilitant de développement d’application et proposé une solutionpour pratiquement tous les types d’application :
applications Windows classiques ;applications Windows classiques ;
applications Web ;
services Windows ;
Services Web ;
Tous ces types d’applications sont réalisables grâce à un élémentessentiel : le Framework .NET. Ce Framework prend en charge, paressentiel : le Framework .NET. Ce Framework prend en charge, parl’intermédiaire de plusieurs couches logicielles superposées,l’intégralité de la vie d’une application ; du développement jusqu'à
5M.A.CHAÂBANE
g pp pp j ql’application.
II. Le Framework .NET
1. Définition du Framework:
C’est un espace de travail modulaire. C’est ensemble de bibliothèques,d’outils et de transformations permettant le développement d’applications.
2. Caractéristique du Framework
Le framework gère tous les aspect de l’exécution d’une application.
Il alloue la mémoire pour le stockage des données et desinfrastructure des programmes.
Il autorise ou refuse des droits à l’application.
Il dé t è l’ é tiIl démarre et gère l’exécution
Il gère la ré-allocation de la mémoire pour les ressources qui ne
6M.A.CHAÂBANE
sont plus utilisées.
II. Le framework .NET
Le framework doit être hébergé dans un système d’exploitationLe framework doit être hébergé dans un système d exploitationavec lequel va interagir.
Le premier système permettant de l’accueillir est bien sûrwindows mais d’autres versions sont disponibles permettantl’adaptation de la plate-forme .NET à des systèmes tels queLinux ou Unix.
7M.A.CHAÂBANE
II. Le Framework .NET
3. L’ architecture du Framework .NET ( 6 couches )
VB C++ C# J Script J# Tous les langagessupportés par le Frameworknet (Managed Code).net (Managed Code)
8M.A.CHAÂBANE
II. Le Framework .NET
3. L’ architecture du Framework .NET ( 6 couches )
VB C++ C# J Script J# La CLS est unespécification ouvertedéveloppé par Microsoft qui
Common Language Specification (CLS)développé par Microsoft quidécrit l’environnementd’exécution de la machinevirtuelle basé sur CIL Lavirtuelle basé sur CIL. Laspécification définit unenvironnement qui permetd’utiliser de nombreuxd utiliser de nombreuxlangages de haut niveausur différentes plates-formes sans nécessité deréécrire le code pour desarchitectures spécifiques
9M.A.CHAÂBANE
II. Le Framework .NET
3. L’ architecture du Framework .NET ( 6 couches )
VB C++ C# J Script J#
Common Language Specification (CLS)
ASP NET
• interfaces utilisateurspour les applicationswindows.ASP.NET
Web Forms Web Services Windows Forms • Pour la création desapplications web
10M.A.CHAÂBANE
II. Le Framework .NET3. L’ architecture du Framework .NET ( 6 couches )
VB C++ C# J Script J#
Common Language Specification (CLS)
ASP NETASP.NETWeb Forms Web Services Windows Forms
Data et XML
• Connexion à une BD(ADO.NET)
• XMLData et XML • XML
11M.A.CHAÂBANE
II. Le Framework .NET3. L’ architecture du Framework .NET ( 6 couches )
VB C++ C# J Script J#
Common Language Specification (CLS)
ASP NETASP.NETWeb Forms Web Services Windows Forms
Data et XMLData et XML
Base Class Library (BCL ou FCL)
Un ensemble d’outils(classes) lui permettantd’obtenir une solution rapidepour les problèmesrencontrés lors dudéveloppement.
12M.A.CHAÂBANE
II. Le Framework .NET
3. L’ architecture du Framework .NET ( 6 couches )
VB C++ C# J Script J#CLR est le nom choisi pasMicrosoft pour le composantde machine virtuelle du
Common Language Specification (CLS)
ASP NET
framework .Net. Il s’agit del’implémentation parMicrosoft du CLI qui définiASP.NET
Web Forms Web Services Windows Forms
Data et XML
l’environnement d’exécutiondes codes de programmes.
CLR est considéré commeData et XML
Base Class Library (BCL ou FCL)
CLR est considéré commeun agent qui gère enmémoire le code au momentde l’exécution. il fournit les
Common Language Runtime (CLR)
de l exécution. il fournit lesservice essentiels comme lagestion de la mémoire, lagestion des processus et
13M.A.CHAÂBANE
g pl’accès distant.
II. Le framework .NET
Les applications Managées : sont écrites par les langages .NET etqui utilisent le framework. Les autres sont dites applications nonmanagées.
Le framework traduit le programme du langage Commun CIL enlangage machine.
Le framework contient deux éléments principaux : le CLR et la BCL.
l b d kLe CLR est la base du Framework .NET. Le run-time peutêtre considéré comme un moteur d’exécution qui gèrel’ é ti d d t é l t l ti d ll’exécution du code et assure également la gestion de lamémoire. Le code pris en charge par le CLR est appelé codemanagé
14M.A.CHAÂBANE
managé.
II. Le framework .NET
La bibliothèque de classes est un ensemble de classespouvant être utilisé pour le développement de tout typepouvant être utilisé pour le développement de tout typed’application.
15M.A.CHAÂBANE
III. La bibliothèque de classes (BCL)
Le framework .net met à la disposition des développeurs un ensembled’ til l i tt t d’ bt i l ti id à j ité dd’outils lui permettant d’obtenir une solution rapide à une majorité deproblèmes rencontrés lors de la réalisation d’une application.
C til t di ibl f d l à l’i dCes outils sont disponibles sous forme de classes à l’inverse desbibliothèques de code des langages de la génération précédente (Ex:Math h dans le langage C) qui n’était qu’une liste intermédiaire deMath.h dans le langage C), qui n était qu une liste intermédiaire deprocédures ou fonctions.
Cette bibliothèque fournit des classes qui en capsulent un certainCette bibliothèque fournit des classes qui en capsulent un certainnombre de fonctionnalités courantes telles que:
L é t ti hiLa présentation graphiqueLa lecture et l’écriture de fichiersL’i f l BD
16M.A.CHAÂBANE
L’interfaçage avec les BD, etc
III. La bibliothèque de classes (BCL)
La bibliothèque de classes est organisée sous forme d’une structurehiérarchisée. L’élément essentiel cette hiérarchisation est l’espacede nom (Namespace).
Il permet le regroupement logique de classes ayant des pointscommuns. Par exemple, on retrouve dans le namespaceSystem.Data toutes classes utilisables pour accéder à une base dedonnées.
Cette bibliothèque de classes est indépendante de tout langage deprogrammation. Elle permet donc le mélange de différents langagesau cours du développements d’une application.
17M.A.CHAÂBANE
III. La bibliothèque de classes (BCL)
Les espaces de noms les plus utilisés sont les suivants :
System
C’est l’espace de nom racine pour les types de donnéesp p ypdans le framework .NET. Il contient notamment la définition de laclasse Object, qui est l’ancêtre de tous les types de données duframework .NET.
System.Windows
Il contient l’ensemble des éléments permettant la créationpd’interfaces utilisateurs Windows.
18M.A.CHAÂBANE
III. La bibliothèque de classes (BCL)
System.web
il contient toutes les ressources nécessaires pour la créationd’application Web, avec par exemple, les classes de latechnologie ASP.NET ou les classes utilisables pour lacréation de service Web XML.
System.data
Il contient l’ensemble de classes spécialisées dans l’accés auxpbases de données, avec le support de ADO.Net.
System XMLSystem.XML
Le langage XML est devenu omniprésent de cet espace denom contient les classes assurant la manipulation de
19M.A.CHAÂBANE
nom contient les classes assurant la manipulation dedocuments XML.
IV. Common Language Runtime (CLR)
1. Le principe de fonctionnement du CLR
Dans les applications windows traditionnelles, le systèmeprend directement en charge l’exécution du code. En effet,prend directement en charge l exécution du code. En effet,celui-ci est généré par le compilateur associé au langage deprogrammation utilisé pour la conception de l’applicationprogrammation utilisé pour la conception de l application.
Le résultat de cette compilation correspond à un fichierbi i t t l d é ifi l ibinaire contenant le code spécifique pour le microprocesseuret le système d’exploitation avec lesquels l’application doitfonctionner.
Aucune compatibilité avec un autre type de
20M.A.CHAÂBANE
microprocesseur ou système d’exploitation n’est possible.
IV. Common Language Runtime (CLR)
La solution pour s’affranchir de ces problèmesconsiste à générer à la compilation non pas à la codeconsiste à générer à la compilation, non pas à la codespécifique, mais un code générique, indépendant de touteplateforme logicielle ou matérielleplateforme logicielle ou matérielle.
Ce code est, au moment de l’exécution, confié à unemachine virtuelle qui en assure l’exécution. Ce codes’appelle Microsoft Intermediate Language (MSIL) ouCommon Intermediate Language (CIL).
Lors de l’exécution de l’application ce code est pris enLors de l exécution de l application, ce code est pris encharge par la machine virtuelle qui en assure la traductionen instructions spécifiques pour le microprocesseur de la
21M.A.CHAÂBANE
en instructions spécifiques pour le microprocesseur de lamachine.
IV. Common Language Runtime (CLR)
Cette traduction n’est pas effectuée, en bloc dés le débutd l’ li ti i i t f t à dde l’application mais uniquement au fur et à mesure desbesoins.
En effet, pourquoi perdre du temps à traduire du codeMSIL, s’il n’est jamais utilisé par la suite. C’est pour cettej p praison que le compilateur utilisé pour cette traductions’appelle Compilateur Just In Time (JIT).pp p ( )
Les avantages de cette solution sont évidents car pourexécuter une même application sur plusieurs plates formesexécuter une même application sur plusieurs plates-formesmatérielles et ou logicielles, il suffit d’obtenir la machinevirtuelle capable d’effectuer la traduction
22M.A.CHAÂBANE
virtuelle capable d’effectuer la traduction.
Cod
eC
# CompilateurC#
ode
.Net
CompilateurMachine virtuelle
Co
VB VB.Net
Code Compilateur011011010100
virtuelle
Cod
eJ#
CompilateurJ#
CodeCIL
pJIT 111000
100101
…..
Scr
ipt
CompilateurJScript
23M.A.CHAÂBANE
J
CodeC#
CodeVB Net
CodeJ#
JScript…..C# VB.Net J#
Compilateur Compilateur Compilateur Compilateurp Compilateur p
C L I f t t
CIL
Common Language Infrastructure
CLRCLR
0100110010101110000110
24M.A.CHAÂBANE
10101100101010011000
IV. Common Language Runtime (CLR)
2. Les service du CLR
Le CLR fournit quatre services suivants
Common Language Specification (CLS) : Comprends lesg g p ( ) pfonctionnalités communes à tous les langages .NET aveclesquels il doivent fonctionner.
CLS permet d’optimiser et d’assurer l’interopérabilité deslangages.
Interopérabilité des langages désigne la capacité du code àinteragir avec du code écrit avec d’autres langages deprogrammation.
25M.A.CHAÂBANE
IV. Common Language Runtime (CLR)Common Type System (CTS) :
Le système de type commun définit la façon dont les types sontdéclarés, utilisées et gérée dans le CLR.
Il définit les règles que les langages doivent respecter, ce quid l’ d b d l d ffpermet de garantir l’interaction des objets écrit dans les différents
langages
C I t di t l (CIL)Common Intermediate language (CIL)
Dans un environnement .NET framework, le code source estilé d CIL lé B t dcompilé en code CIL appelé Bytecode.
Le CIL est portable indépendant d’une plateforme ou d’unprocesseurprocesseur.
26M.A.CHAÂBANE
IV. Common Language Runtime (CLR)
Compilateur Just In Time (JIT) :
Ce bytecode est compilé par le compilateur JIT (Juste àCe bytecode est compilé par le compilateur JIT (Juste àTemps) pour obtenir un code immédiatement exécutable parle processeur.p
Durant la compilation, le JIT effectue un grand nombre detâches pour éviter des accès illégales à la mémoiretâches pour éviter des accès illégales à la mémoire.
27M.A.CHAÂBANE
IV. Common Language Runtime (CLR)C
ode
C# Compilateur
C# CLS et CTS
ode
.Net
CompilateurMachine virtuelle
Co
VB VB.Net
Code Compilateur011011010100
virtuelle
Cod
eJ#
CompilateurJ#
CodeCIL
pJIT 111000
100101
…..
Scr
ipt
CompilateurJScript
28M.A.CHAÂBANE
J
I tit t S é i d’Ad i i t tiInstitut Supérieur d’Administration des Affaires-Sfax
Outils de Programmation de Gestion
Ma chaabane@fsegs rnu tnMohamed Amine CHAÂBANE
2009-2010
1
Le Modèle d’objet Le Modèle d objet ActiveX Data Object.NET (ADO.NET)
2
I. Introduction
Une fonction principale de toute application de base de donnéesconsiste à se connecter à une source de données et extraire lesdonnées qu’elle contient.
L’accès aux données dans le développement d’application est uneétape fondamentale qui influera ensuite sur la rapidité del’application.
Dans les versions antérieures de VB, il existait plusieurs méthodes, pd’accès en fonction aux données en fonction de la configuration (BDdistantes ou locales, type de fichiers, etc) : DAO, RDO, ADO.
Dans les nouvelles versions de VB, seule la technologie ADO.Netest garder
3
est garder
I. Introduction
Principe de ADO.NET
ADO.Net est la nouvelle technologie d’accès aux données fournieen standard dans le framework.Net.
C’est un ensemble de classe, de structure, de types gérant l’accèsà des sources de donnéesà des sources de données.
ADO.Net supporte aussi bien le modèle hiérarchique que lemodèle relationnel ainsi que les données XMLmodèle relationnel ainsi que les données XML.
ADO.Net comportent plusieurs fournisseurs de donnéesl’exécution de commandes et l’extraction de résultat.
ADO.Net permet a différentes sources de données par
4
l’intermédiaire des fournisseurs OLE DB.
II. Mode connecté et déconnecté
Lors de l’utilisation de données dans une application deux modessont opposés. (Mode connecté et le mode déconnecté).
I.1 Le mode connectée ode co ec é
On parle de mode connecté lorsque l’application cliente à unè di t t t à l d d é Daccès direct et permanant à la source de données. Dans ce
cas, on doit se connecter à la sources de données avantd’ ff t ’i t ll tâ hd’effectuer n’importe quelle tâche.
Depuis le début de l’informatique, c’était le seul modedisponible. Ce mode présente certains avantages dans sonfonctionnement :
5
II. Mode connecté et déconnecté
Facile à gérer : la connexion est réalisée au début del’application puis est coupée à sa fermeture.
L’accès concurrentiel est plus facile à contrôler : commeptous les utilisateurs sont connectés en permanence, il estplus facile de contrôler lequel qui travail sur les données
Les données sont à jour : toujours grâce à la connexionpermanente aux données, il est facilement envisageablep , gde prévenir toutes les applications utilisant les donnéesque des modifications viennent d’y être apportées.q y pp
6
II. Mode connecté et déconnecté
Par contre certains inconvénients ont été relevés :l i é d it êt t t i tla connexion réseau doit être constamment maintenue :
en cas d’utilisation de l’application sur un ordinateurportable l’accès au réseau risque de ne pas êtreportable l accès au réseau risque de ne pas êtredisponible en permanence.il a un risque de gaspillage des ressources sur leil y a un risque de gaspillage des ressources sur leserveur : au moment de l’établissement d’une connexionentre une application cliente et un serveur des ressourcesentre une application cliente et un serveur, des ressourcessont allouées sur le serveur pour la gestion de cetteconnexion. Ces ressources restent monopolisées par laconnexion. Ces ressources restent monopolisées par laconnexion même si aucune information ne transite parcette connexion
7
II. Mode connecté et déconnecté
En mode connecté nous pouvons effectuer des opérations de :
1 R h h i D t R d i l êt i l i1. Recherche via un DataReader : si la requête renvoi plusieurslignes.
Windows form
BD
Windows form
ConnexionCommandDataReader
2. Recherche sans aucun intermédiaire : si la requête renvoi qu’un résultat.
Windows form
BDConnexionCommand
8
II. Mode connecté et déconnecté
3. Manipulation de base de données : pour les requêtes quine retourne pas de résultat (modifier la BD).
Windows form
BDConnexionCommand
9
II. Mode connecté et déconnecté
2.2. Mode déconnecté
Le mode déconnecté est une nouveauté de ADO.Net. Ce modepermet de travailler sur des données sans avoir un accès direct etpermanent à la base de données. il est généralement utilisé pourdes applications qui ne disposent pas toujours d’un accès à lasource de données (le cas de certaines applications web). Danscette configuration, le traitement de données se fait en 3 étapes :
Récupération des données à partir de la sourceModification des données en mode déconnectéIntégration des données modifiées à la sources avec, le caséchéant, résolution des conflits (généralement des contraintes
10
d’intégrité).
II. Mode connecté et déconnecté
Les avantages du mode déconnecté sont:
Les connexions sont utilisées pendant la plus courte durée possible.De cette façon, un petit nombre de connexion sont disponibles sur unserveur suffisent pour de nombreux utilisateurs.
Un environnement déconnecté améliore l’évolutivité et lesperformances d’une application, en optimisant la disponibilité desconnexions.
L’environnement déconnecté comporte cependant quelquesinconvénients :
les données disponibles dans l’application ne sont pas à jours.
des conflit peuvent parfois survenir lors de la mise à jour des
11
informations dans la base.
II. Mode connecté et déconnecté
En mode déconnecté on peut ajouter, modifier, supprimer et delire des données.
Si vous utilisez le mode déconnecté, vous disposerez des objetssuivants:
DataSet : jeu de donnéesDataAdapter : classe permettant la fusion entre un jeu dedonnées et la source.
12
II. Mode connecté et déconnecté
Windows form DataSet
BD
Command
ConnexionDataAdapter
13
III. Les objet ADO.net
Pour avoir accès aux objets ADO.Net (DataSet, DataTable,…) ilfaut importer l’espace de nom System.Data.
II.1 Objet de connexion. Objet de co ex o
Il permet de définir une connexion à une base de données.
Pour avoir accès aux données il faut:Charger le fournisseur de données (Drivers ou Provider), c’est-à-dire charger les références des drivers (NameSpace),Importer les espaces de nomsEtablir la connexion
14
III. Les objet ADO.net
a) Charger le fournisseur de données
il existe plusieurs façon pour accéder a un fournisseur de donnéessous le .NET :
Utilisant ODBC : méthode « universelle » de connexion à labase de données.base de données.Utilisant un provider intégré dans le frameworkUtilisant un provider conçus exclusivement pour une baseUtilisant un provider conçus exclusivement pour une basede données :
soit crée par la société qui a crée la base de donnéessoit crée par la société qui a crée la base de données,ou bien par une autre société.
15
III. Les objet ADO.net
Exemple:
Pour les base de données Oracle, on peut utiliser :
1) S i ODP (O l D P id ) l f i d’ è1) Soit .ODP (Oracle Data Provider) le fournisseur d’accès(Provider) des bases de données oracles. Il est Conçu etdéveloppé par cette même société Pour cela il faut :développé par cette même société. Pour cela il faut :
* Ajouter la référence à Oracle.DataAccess.Dll* Et import l’espace de nom (de préférence dans unmodule standard) :
Imports Oracle.DataAccess.Client
16
III. Les objet ADO.net
17
III. Les objet ADO.net
2) Soit un provider intégré au Framework.net. Pour cela il faut :
* Ajouter la référence à System.Data.OracleClient.dll
* Et import l’espace de nom (de préférence dans un modulestandard):
Imports System.Data.OracleClient
18
III. Les objet ADO.net
b) Etablir la connexion
Pour établir une connexion à une base de données :Initialiser l'objet qui va effectuer la connexion à la base Oracle.j qPour cela, vous disposez de l'objet OracleConnection.Définir la propriété chaine de connexion ConnectionString.ConnectionString est la principale propriété associée à un objetde connexion pour se connecter à une BD et pointé sur uneb d d é ti lièbase de données particulière.
ConnectionString = ‘’ Data Source = ; user ID= ; password= ;’’
19
III. Les objet ADO.net
Exemple :
Dim conn As New OracleConnection
C C ti St i ‘’D t S O l IDConn.ConnectionString = ‘’DataSource = Oracle ; user ID =Scott ; password = triger’’
Conn.open ()
20
III. Les objet ADO.net
II.2 L’objet de Command
Permet d’accéder aux commandes de BD en vue de :Retrouver des donnéesRetrouver des donnéesModifier des donnéesE é té d éd t kéExécutés des procédures stockéesEt envoyer ou récupérer des informations sur lesparamètres.
21
III. Les objet ADO.net
Pour cela il faut :
1. Instanciation de l’objet OracleCommand et de ses propriétés.
Dim Cmd As new Oraclecommad
Relier la commande à la connexion
Cmd Connection = conn ‘ variable déjà déclaré de type oracle connectionCmd. Connection = conn variable déjà déclaré de type oracle connection.
2 Définir la propriété CommandType2. Définir la propriété CommandType,
CommandType.StoredProcedure
CommandType.TableDirect
CommandType.Text ‘ Requête SQL
22
yp q Q
cmd.commandType=CommandType.Text
III. Les objet ADO.net
3. Définition de la commande :
Requête RSQL à exécuter par exemple
Cmd CommandText= ‘’Select * from emp ‘’Cmd.CommandText= Select from emp
4. Exécution de la commande : pour cela il faut:
* utiliser un DataReader
Ou bien * utiliser un DataAdapterOu bien * utiliser un DataAdapter
Ou bien * exécuter une requête de mise à jourcmd.ExecuteNonQuery() : en cas d’ajout, demodification ou suppression (mais pas de sélection).
23
III. Les objet ADO.net
II.2 L’objet DataReader
On peut utiliser le DataReader ADO.Net pour extraire d’une BD unensemble de données en lecture seules. (lire en avant uniquement ; sans
t iè )retour en arrière).
Les résultats retournés sont en mémoire. On ne peut stocker ené i ’ l li à l f i i éd it l h d tèmémoire qu’une seule ligne à la fois ce qui réduit la charge du système.
24
III. Les objet ADO.net
Exemple:
Select * From emp; on a une seule ligne qui en mémoire et puis onrécupère les autres lignes une par une par contre le DataSet contientt t l t bl C’ t i l D t R d t l idtoute la table. C’est pourquoi la DataReader est plus rapide.
25
III. Les objet ADO.net
Extraction de données à l’aide d’un DataReader (ADO.Net)
Utiliser l’objet OracleDataReader
Dim DReader As New OracleDataReader
Pour extraire des lignes d’une source de données impliquel’utilisation de l’objet Command, puis la création d’un DataReader enappelant :
DReader = Cmd.ExecuteReader()
26
III. Les objet ADO.net
Vérifier si DataReader contient des résultats :
If DReader.hasRows Then
On peut utiliser la méthode Read de l’objet DataReaderOn peut utiliser la méthode Read de l objet DataReaderpour obtenir une ligne à partir de la requête.
Read permet d’avancer la lecture des données à l’enregistrement suivant : DReader.Read().
On peut utiliser le DataReader dans un boucle :Do while DReader. Read ( )( )
messageBox.show (DReader.GetString (1))Loop
27
p
III. Les objet ADO.net
Pour accéder à chaque colonne de la ligne retournée on peut utiliser
Le nom du champ :Wnomemp = DReader.Item (‘’EMPNOM’’)p ( N )La référence ordinale de la colonne duDataReader : DReader GetString (1)DataReader : DReader. GetString (1).
Fermeture du DataReader
DReader.CloseFermeture de l’objet connexion
Conn.Close
28
IV. Applicationpp
Soit la table Voiture :
Voiture (IMMAT, Marque, Type, Puiss, …)
Recherche de Voiture
N°VoitureMarqueType
Puissance
1. Explique la feuille d’interfacep q
2. Expliquer et écrire les procédure d’événementé i
29
nécessaires
IV. Application
1/
Utili ti d t ôl L b l l t t à ffi hUtilisation de contrôle Label pour les textes à afficherpar défaut sur la feuille.
Un contrôle texte Box name: WIMMAT pour la saisie dunuméro de la voiture.
Utilisation des contrôles labels par l’affichage de lamarque type puissancemarque, type, puissance.
2/ Ajouter la référence System.Data.OracleClient
Ajouter un module au projet dans lequel on doit :
Importer le namespace d’oracle :
30
Importer le namespace d oracle :System.Data.oracleClient
IV. Application
Déclarer les objets nécessaires :Objet OracleConnectionObjet ObjetCommande (pour exécuter uneObjet ObjetCo a de (pou exécute u ecommande SQL par exemple)Oracle DataReader (pour extraire de la BD desOracle DataReader (pour extraire de la BD desdonnées en lecture seulement)
Écrire une procédure de connexion qu’on va l’appelerp q ppen cas de besoin
É i éd d f t d i
31
Écrire une procédure de fermeture de connexion.
V. Gestion des exceptions
Il faut mettre les lignes de commande permettant l’accès à la basede données (open, Update, Fill, Close, etc) dans un bloc Try –Catch pour gérer l’exception (une exception est une erreurd’ é ti )d’exécution).
Exception: est une classe de VB.Net qui, si une erreur d’exécutionse produit, va générer un objet en rapport avec le type de l’erreur.
32
V. Gestion des exceptions
Exemple:
Try
Conn.open()p ()
Catch
M B h ( d i )MessageBox.show (« erreur de connexion »)
Ou bien
Catch exp As Exception
MessageBox.show ( exp.Message)Message ox.s o ( exp.Message)
End try
33
Outils de Programmation de Gestion
Ma chaabane@fsegs rnu tnMohamed Amine CHAÂBANE
2012-2013
1M.A.CHAÂBANE
Chapitre III.L’accès aux données en mode
connecté
2M.A.CHAÂBANE
I. Extraction des données: à l’aide de d’un DataReader
1. Principe du fonctionnement de DataReader ADO.NETOn utilise le DataReader pour extraire d’une base de données unOn utilise le DataReader pour extraire d une base de données un
ensemble de données:en lecture seule et en avant seulementles résultats sont retournés en mémoireet on ne stocke en mémoire qu’une seule ligne à la q gfois, ce qui réduit la charge du système
3M.A.CHAÂBANE
I. Extraction des données: à l’aide de d’un DataReader
•Pour extraire les données de la BD Oracle: Utiliser l’objet OracleDataReaderDi DR d A O l D t R dDim DReader As OracleDataReader
•Pour extraire les lignes de la source de données: Utiliser les objets Command,Connection.
•Pour créer un DataReader: Appeler la méthode ExecuteReader de l’objetCommand
DReader= Cmd.ExecuteReader()
•Vérifier si le DataReader contient des résultats:If DReader.HasRows Then
•On peut utiliser la méthode Read de l’objet DataReader pour obtenir lapremière ligne (enregistrement item) à partir des résultats de la requête oupremière ligne (enregistrement, item) à partir des résultats de la requête oupour passer à la ligne suivante
Dreader.Read()
4M.A.CHAÂBANE
I. Extraction des données: à l’aide de d’un DataReader
•On peut utiliser la lecture du DataReader dans une boucle pourparcourir toutes les lignes du résultat:parcourir toutes les lignes du résultat:
Do While DReader.Read()
•Pour accéder à chaque colonne de la ligne retournée, on peututiliser soit :
le nom du champLabel1.Text= DReader.Item("Empnom")
la référence de la colonne du DataReaderLabel1.text= DReader.GetString(1)GetDateTime, GetInt32, GetBoolean, GetChar
•Fermer le DataReader : DReader.close
5M.A.CHAÂBANE
Fermer le DataReader : DReader.close
I. Extraction des données: à l’aide de d’un DataReader
2. Schéma logique du traitement:Après la saisie du code à chercher on doit:Après la saisie du code à chercher on doit:
• Etablir la connexionE i êt SQL SELECT• Ecrire une requête SQL SELECT
• Relier la requête à l’objet command• Exécuter la command utilisation l’objet (DataReader)• Vérifier si le code existe dans le DataReader
Si existe: afficher l’enregistrementSinon: afficher message « erreur »Fin si: Fermer la connexion
6M.A.CHAÂBANE
II. Mise à jour des données (en mode connecté)
1. PrincipeO i l di t t l b t dOn manipule directement la base sans retour derésultats.O tili l t d bj t C d t C tiOn utilise seulement des objets Command et Connection(sans DataReader):Pour effectuer une mise à jour des données: On exécutePour effectuer une mise à jour des données: On exécutela requête directement, requête SQL de mise à jour(insert delete update)(insert, delete, update)
Cmd.ExecuteNonQuery()
7M.A.CHAÂBANE
II. Mise à jour des données (en mode connecté)
2. Ajout d’un enregistrementS hé l i d t it t A è l i i dSchéma logique de traitement: Après la saisie del’enregistrement à ajouter on doit:
• Etablir la connexion• Ecrire une requête SQL SELECT• Relier la requête à l’objet command• Exécuter la command utilisation l’objet
(DataReader)
8M.A.CHAÂBANE
II. Mise à jour des données (en mode connecté)
Vérifier si le code existe dans le dataReader :Si i l \\ i t t i tSi oui alors \\ enregistrement existe
afficher un message « erreur »SinonSinon
écrire la requête SQL InsertRelier la requête à l’objet commandRelier la requête à l objet commandExécuter la commandeCmd.ExecuteNonQuery()Cmd.ExecuteNonQuery()
Fin siFermer la connexionFin
9M.A.CHAÂBANE
II. Mise à jour des données (en mode connecté)
Soit la table Locataire : Type : TextBox
Name: wNLoc
Locataire (NLOC, NOMLOC, ADRLOC)Ajout d’un Locataire
Text: ‘’ ‘’
Type : TextBox
Name: wNomLoc
Numéro locataireNom locataireAd l t i
Text: ‘’ ‘’
Type : TextBox
Name: wadrLoc
Type : Label
Adresse locataireEnregistrer
Name: wadrLoc
Text: ‘’ ‘’
Type : Bouton
Name: btnenregistrerName: btnenregistrer
Text: enregistrer
1. Expliquer la feuille d’interface.
2 Expliquer et écrire les procédure d’événement
10M.A.CHAÂBANE
2. Expliquer et écrire les procédure d événementnécessaires.
III. Mise à jour des données (en mode connecté)
3. Modification d’un enregistrement S hé l i d t it t A è l i i d dSchéma logique de traitement: Après la saisie du code
à modifier on doit:• Etablir la connexion• Etablir la connexion • Ecrire une requête SQL SELECT
Relier la req ête si l’objet command• Relier la requête si l’objet command • Exécuter la command utilisation l’objet
(DataReader)(DataReader)
11M.A.CHAÂBANE
II. Mise à jour des données (en mode connecté)
Vérifier si le code existe dans le dataReader :Si i l \\ i t t i tSi oui alors \\ enregistrement existe
Afficher l’enregistrement à modifierSaisir les nouvelles valeursSaisir les nouvelles valeursEcrire la requête SQL UPDATERelier la requête à l’objet commandRelier la requête à l objet commandExécuter la commandeCmd.ExecuteNonQuery()y()
Sinon Afficher un message « erreur »
Fin siFermer la connexion
12M.A.CHAÂBANE
Fin
III. Mise à jour des données (en mode connecté)
3. Suppression d’un enregistrement S hé l i d t it t A è l i i d dSchéma logique de traitement: Après la saisie du code
à supprimer on doit:• Etablir la connexion• Etablir la connexion • Ecrire une requête SQL SELECT
Relier la req ête si l’objet command• Relier la requête si l’objet command • Exécuter la command utilisation l’objet
(DataReader)(DataReader)
13M.A.CHAÂBANE
II. Mise à jour des données (en mode connecté)
Vérifier si le code existe dans le dataReader :Si i l \\ i t t i tSi oui alors \\ enregistrement existe
Afficher l’enregistrement à supprimerEcrire la requête SQL DELETEEcrire la requête SQL DELETERelier la requête à l’objet commandExécuter la commandeExécuter la commandeCmd.ExecuteNonQuery()
SinonSinon Afficher un message « erreur »
Fin siFermer la connexionFin
14M.A.CHAÂBANE
III. Application
Suppression d’un Locataire
Numéro locataireNom locataireAdresse locataire
Expliquer et écrire les procédure d’événement nécessaires
Supprimer
15M.A.CHAÂBANE
III. Application
Procédure 1
Après la saisie du code du locataire à supprimer la procédure sera par la
pp
Après la saisie du code du locataire à supprimer la procédure sera par lasuite exécutée donc le type de la procédure est keypress (lorsque l’utilisateurtape entrer) ou lostfocus (lorsque l’utilisateur déplace le curseur).
Rechercher dans la table Locataire à l’aide d’une requête SQL (select) et unDataReader.
Si l l t i i t l ffi h d é t ti l b t S iSi le locataire existe alors afficher ses données et activer le bouton Supprimerau niveau de l’affichage.
Sinon afficher un message d’erreurSinon afficher un message d erreur
Procédure 2
Procédure de type click sur le bouton SupprimerProcédure de type click sur le bouton Supprimer
Ecrire une requête SQL DELETE
Exécuter la requête en utilisant l’objet Command
16M.A.CHAÂBANE
Exécuter la requête en utilisant l objet Command
III. Application
Imports System.data.oracleclient
dim RSQL As String
di d A O l D t R ddim dr As OracleDataReader
Private Sub WNLOC_keypress (sender, e) as WNLOC.Keypress
[call] ouvrirconnexion()
RSQL = ‘’ Select * from Locataire where NLOC = ‘’ & Cint (WNLOC text) & ‘’ ‘’RSQL = Select * from Locataire where NLOC = & Cint (WNLOC.text) &
Cmd.commondtype=Commandtype.text
Cmd.commodtext=RSQL
dr = cmd executeReader()dr = cmd.executeReader()
if dr.HasRows () then
dr.read
WNOMLOC.text = dr.item (‘’NOMLOC’’)O OC te t d te ( O OC )
WADRLOC.text= dr.item (ADRLOC)
BtnSupprimer.Enable = True
Else
MessageBox.Show (‘’ Locataire n’existe pas ‘’)
End if
[call] Fermerconnexion()
17M.A.CHAÂBANE
End Sub1
Outils de Programmation de Gestion
Ma chaabane@fsegs rnu tnMohamed Amine CHAÂBANE
2012-2013
1M.A.CHAÂBANE
Chapitre III.L’accès aux données en mode
déconnecté
2M.A.CHAÂBANE
I. Principe
1. Principe du fonctionnement de DataSetU d t t t à é h d d é t dUn adaptateur sert à échanger des données entre une source de données et un groupe de données (DataSet). Il consiste à lire des données de la base pour les placer dans un DataSet, puis à écrire les modifications du DataSet dans la baseles modifications du DataSet dans la base.
Déclarer un objet DataAdapterPrivate DAdapter As OracleDataAdapterPrivate DAdapter As OracleDataAdapter
Instancier un objet DataAdapterDAdapter = New OracleDataAdapterDAdapter New OracleDataAdapter
3M.A.CHAÂBANE
I. PrincipeChaque adaptateur échange des données entre une table de la
source de données et un seul objet (DataTable) du groupe desource de données et un seul objet (DataTable) du groupe deDonnées (DataSet)
Si le DataSet (groupe de données) contient plusieurs tables il fautSi le DataSet (groupe de données) contient plusieurs tables il fautcréer plusieurs adaptateurs.
L D t S t t é t ti é i d d éLe DataSet est une représentation en mémoire des données. oncharge le DataSet à partir de la BD grâce à un adaptateur. Unefois chargé on peut travailler en mode déconnecterfois chargé on peut travailler en mode déconnecter.
Pour effectuer les modifications :O difi l D SOn modifie le DataSetPuis on met à jour le base de données à partir du DataSet.
4M.A.CHAÂBANE
I. Principe
BD
Connexion
DataAdapterCommandBuilder Command
U d t
DataSet
Update
Insert Update Delete
Select
p
5M.A.CHAÂBANE
I. Principe
2. Les principales classes d’un DataSet
Dans un mode non connecté la liaison avec le serveur dedonnées n’est pas permanente. Il faut donc conserver localementles données sur lesquelles ont souhaite travailler. L’idée estrecréer, à l’aide de différentes classes, une organisation similaireà ll d’ b d d é L i i l l tà celle d’une base de données. Les principales classes sont :
• Le DataSet est le conteneur de plus haut niveau, il joue lemême rôle que la base de données. il est organisé comme unebase de données en mémoire qui possède :
une propriété Tables qui contient des DataTable
6M.A.CHAÂBANE
I. Principe
• Chaque DataTable comme son l’indique, c’est l’équivalentd’ t bl d b d d é il ti td’une table de base de données. il contient
• une propriété Columns qui contient les DataColumn.• et une propriété Rows qui contient des DataRow.
• DataColumn remplace un champ (colonne) d’une table;
• DataRow joue le rôle d’un enregistrement (ligne)
• UniqueConstraint c’est l’équivalent de la clé primaire d’une• UniqueConstraint c est l équivalent de la clé primaire d unetable.
• ForeignKeyConstraint c’est l’équivalent de la clé étrangère• ForeignKeyConstraint c est l équivalent de la clé étrangère.
• DataRelation représenta un lien parent/enfant entre deuxt bl
7M.A.CHAÂBANE
tables.
I. Principe
D t S tDataSet
DataTable DataTableDataTable DataTableDataRaw
DataColumnUniqueConstraint
ForeignKeyConstraintDataRelation
8M.A.CHAÂBANE
II. Consultation des données
1. Déclaration et utilisation des objetsDéclarer un objet DataAdapterDéclarer un objet DataAdapter
Private DAdapter As OracleDataAdapter
I t i ti d l’ bj t D t Ad tInstanciation de l’objet DataAdapter :DAdapter = new OracleDataAdapte (cmd)C d t bj t d t O l C dCmd est un objet de type OracleCommand
Déclarer un objet DataSetPrivate DSEmploye As new DataSet()
Charger le DataSet à l’aide de la propriété FILL del’objet du DataAdapter
DAdapter.fill (DSEmploye, ‘’ Employer’’)
9M.A.CHAÂBANE
II. Consultation des données
2. Visualiser un enregistrementVérifier si la table du DataSet n’est pas videVérifier si la table du DataSet n est pas vide
If DSEmploye.Tables (‘’Employe’’).Rows.count = 0 thenMessageBox (‘’ TableVide’’)
Afficher un enregistrement : par exemple dans des contrôle Label ouTextBox :
WN E T t DSE l T bl (‘’E l ’’) R (i) ItWNumEmp.Text = DSEmploye. Tables (‘’Employe’’).Rows(i).Item(NomEmp)
Afficher le DataSet dans un contrôle (DataGridView) :( )• Remplissage automatique : Relier la grille (DGView) à une source dedonnées DataSet (DSEmploye) :
DGView.DataSource = DSEmploye.Tables (‘’Employe’’)• Remplir la grille (DGView) à partir d’une source de données (DataSet):Par programmation.
10M.A.CHAÂBANE
Par programmation.
II. Consultation des données
Afficher la ligne sélectionnée : Sur click dans le DataGridViewP i t S b DGVi li k ( d )Private Sub DGView_click (sender, e)
Dim NLigne, NColonne As integerDim Valeur As StringDim Valeur As StringNLigne = DGView. CurrentCellAdress.XNColone= DGView. CurrentCellAdress.XNValeur = DGView. CurrentCell.Value
End sub
Afficher le DataSet dans un contrôle (ListBox) :• Ajouter un élément à la liste :
Li t1 It Add ( l t)List1.Items.Add (element)• Afficher la ligne sélectionnée : Sur click dans la liste:
Variable = List1 SelectedItem
11M.A.CHAÂBANE
Variable List1.SelectedItem
II. Consultation des données
Remplir une ListBox à partir du DataSet ligne par ligneDi Li A D t RDim Ligne As DataRowFor Each Ligne in DSEmploye.Tables (‘’ Employe‘’).Rows
List1 Items Add (Ligne Item(‘’EmpNo’’) & ‘’ ‘’ & ligne ItemList1.Items.Add (Ligne.Item( EmpNo ) & & ligne.Item (‘’EmpNo’’))
NextNextApplication
12M.A.CHAÂBANE
III. Mise à jour des données en mode déconnecté
Il faut utiliser l’objet CommandBuilder, de plus des autres bj t i t d h l l d d é d lobjets, qui permet de changer les valeurs des données dans le
DataAdapter.déclarer un objet de type OracleCommandBuilderdéclarer un objet de type OracleCommandBuilder
Public CmdBuilder As OracleCommandBuilderrelier l’objet CommandBuilder à l’objet DataAdapter
CmdBuilder = New OracleCommandBuilder(DAdapter)DAdapter : est un objet de type OracleDataAdapter
13M.A.CHAÂBANE
III. Mise à jour des données en mode déconnecté
Première méthodeAjouter, modifier ou supprimer directement dans le contrôle DataGridViewP i d l i à jPuis sauvegarder la mise à jour :
DAdapter. Update (DSEmploye, ‘’Employe’’)
Vider le DataSet et le recharger de nouveau :Vider le DataSet et le recharger de nouveau :DSEmploye.clear ()DAdapter.Fill (DSEmploye, ‘’ Employe’’)( y y )
14M.A.CHAÂBANE
III. Mise à jour des données en mode déconnecté
Deuxième méthodea- Modifier un enregistrementa- Modifier un enregistrement
Modifier les valeurs des champs en récupérant le contenu des TextBox
DSEmploye.Tables (‘’employe’’).Rows(i).Items(‘’AdrEmp’’) = WAdr.text
Puis sauvegarder la mise à jour :DAdapter. Update (DSEmploye, ‘’Employe’’)
Vider le DataSet et le recharger de nouveau :DSEmploye.clear ()DAdapter.Fill (DSEmploye, ‘’ Employe’’)
15M.A.CHAÂBANE
III. Mise à jour des données en mode déconnecté
b- Ajouter un enregistrementDéclarer un objet DataRow (ligne)Déclarer un objet DataRow (ligne)
Public DrEmploye As DataRowAjouter une nouvelle ligne au DataSet
DrEmploye = DSEmploye.Tables (‘’Employe’’).NewRow()DSEmploye = Tables (‘’Employe’’). Rows.Add (DrEmploye)
Modifier les valeurs des champs en récupérant le contenu du textBoxp pDrEmploye (‘’ Nom’’) = WNom.textDrEmploye (‘’ Prenom’’) = WPrenom.text
Sauvegarder la mise à jour :Sauvegarder la mise à jour :DAdapter. Update (DSEmploye, ‘’Employe’’)
Vider le DataSet et le recharger de nouveau :DSEmploye.clear ()DAdapter.Fill (DSEmploye, ‘’ Employe’’)
16M.A.CHAÂBANE
III. Mise à jour des données en mode déconnecté
C- Effacer un enregistrement
S i l li é i t d l i à jSupprimer la ligne numéro i et sauvegarder la mise à jourDSEmploye.Tables (‘’Employe’’).Rows(i).Delete ()DAdapter Update (DSEmploye ‘’Employe’’)DAdapter. Update (DSEmploye, Employe )
Vider le DataSet et le recharger de nouveau :DSEmploye.clear ()p y ()DAdapter.Fill (DSEmploye, ‘’ Employe’’)
17M.A.CHAÂBANE
Outils de Programmation de Gestion
Ma chaabane@fsegs rnu tnMohamed Amine CHAÂBANE
2012-2013
1M.A.CHAÂBANE
Chapitre V.Utilisation d’autres contrôles
2M.A.CHAÂBANE
I. Le contrôle TIMERLe contrôle Timer permet de programmer des traitements en
arrière plan; il permet aussi formuler des réponses sur la base desl l’h l
p p pvaleurs envoyées par l’horloge système.
On peut placé plusieurs contrôle Timer sur une feuille VB.l t ôl Ti it l’é é t Ti Ti k t é dle contrôle Timer reçoit l’événement Timer « Tick » et répond en
fonction des propriétés définis
3M.A.CHAÂBANE
I. Le contrôle TIMER
Les propriétés du contrôle Timer
Name : c’est le nom du contrôle
Interval : intervalle en milliseconde spécifier la fréquence àInterval : intervalle en milliseconde spécifier la fréquence àlaquelle le contrôle Timer répondra aux événements.
Exemple Interval=1000 c’est-à-dire Timer sera exécutétoutes les millisecondes soit une foit par secondtoutes les millisecondes, soit une foit par second
Enabled :Timer enabled=True c’est à dire exécuter l’événementTimer.enabled=True c est-à-dire exécuter l événementTimerTimer enabled= False c’est-à-dire exécuter l’événement
4M.A.CHAÂBANE
Timer.enabled False c est-à-dire exécuter l événementTimer
I. Le contrôle TIMER
L’événement Timer: TickC ti t l d à é t à h f i ’é lContient le code à exécuter à chaque fois que s’écoulel’intervalle de temps spécicfié dans la propriété Interval.ApplicationApplicationAfficher sur la feuille une horloge affichant l’heure système quidoit être actualiser à chaque seconde et un message d’erreurgqui clignote.
14:55:10
LabelName= horlogTimer
Name= timer1
Label
Visible= FalseInterval= 1000Enabled= True
Warning Name= MessTimer
Name= timer2Visible= False
5M.A.CHAÂBANE
Interval= 10Enabled= false
I. Le contrôle TIMER
Private sub Timer1_Tick (sender, e)‘ l’événement sera exécuté chaque secondeholog.text=TimeOfDay
End SubPrivate sub Timer2_Tick (sender, e)
‘afficher un message en clignotantMess.Visible = Not (Label1.Visible)
End sub
6M.A.CHAÂBANE
II. Le contrôle Animation
Le contrôle Animation permet de diffuser une séquence vidéo(fichier d’extension *.avi) dans une feuiller VB.( )
Ajouter le contrôle Animation à laa boite à outils.Outils/Ajouter élémentComposant / Microsoft Animation Control.
7M.A.CHAÂBANE