Private Sub frm_vrp_load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load



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

.NET - Classe de Log

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Rapport de Mini-Projet en ArcGIS Engine

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

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

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

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Création d objet imbriqué sous PowerShell.

Programmer en JAVA. par Tama

Langage Java. Classe de première SI

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

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

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2014

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Gestion du cache dans les applications ASP.NET

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Programmation avec des objets : Cours 7. Menu du jour

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Package Java.util Classe générique

Chapitre 10. Les interfaces Comparable et Comparator 1

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Programmation en Java IUT GEII (MC-II1) 1

Plan. Accès aux données dans le framework.net. ADO.NET Entity Framework LINQ ADO.NET ADO.NET. 1. ADO.NET Mode connecté Mode non connecté

Programme Compte bancaire (code)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Rafraichissement conditionné d'une page en.net

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Génie Logiciel avec Ada. 4 février 2013

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Sécurité des applications web. Daniel Boteanu

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Utilitaires méconnus de StrataFrame

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Algorithmique & programmation

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Sommaire. 2 LINQ to Objects

Configurer la supervision pour une base MS SQL Server Viadéis Services

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

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Programmation par les Objets en Java

Gestion de stock pour un magasin

Projet de programmation (IK3) : TP n 1 Correction

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

Java DataBaseConnectivity

Arbres binaires de recherche

as Architecture des Systèmes d Information

Un ordonnanceur stupide

Tp 1 correction. Structures de données (IF2)

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Le langage procédural PL-PGSQL

Corrigés détaillés des exercices

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Applet pour visualiser les variables «automate» notifiées

Introduction à JDBC. Accès aux bases de données en Java

CREATION WEB DYNAMIQUE

Plateforme PAYZEN. Définition de Web-services

Gestion des transactions et accès concurrents dans les bases de données relationnelles

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Threads. Threads. USTL routier 1

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Corrigés des premiers exercices sur les classes

Algorithmique et programmation : les bases (VBA) Corrigé

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Visual Basic et les Bases de Données

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Chapitre 2. Classes et objets

Bases de Données Avancées PL/SQL

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

OCL - Object Constraint Language

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Attaques applicatives

Premiers Pas en Programmation Objet : les Classes et les Objets

Programmation avec Microsoft Visual Basic. NET. Réponses aux questions Solutions des exercices

Excel et les bases de données

Recherche dans un tableau

Introduction au PL/SQL Oracle. Alexandre Meslé

How to «Lier des tables à l'aide de paramètres nommés SQL»

Application web de gestion de comptes en banques

OpenOffice.org et les bases de données.

Définition des Webservices Ordre de paiement par . Version 1.0

Héritage presque multiple en Java (1/2)

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Oracle Le langage procédural PL/SQL

Alfstore workflow framework Spécification technique

Bases de données et fournisseurs de contenu

Transcription:

L APPLICATION DES VRP EN MVC LE FORMULAIRE LE CODE DU FORMULAIRE Imports System.Collections Public Class frm_vrp ' on declare le tableau des vrp Private letableauvrp As List(Of VRP) Private Sub frm_vrp_load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load ' instanciation du tableau des vrp letableauvrp = New List(Of VRP) 'charger les vrp depuis le base de données letableauvrp = controleur.liretouslesvrp() ' calculer les salaires letableauvrp = controleur.calculertouslessalaires(letableauvrp) 'transférer les données des vrp dans la datagridview For i = 0 To letableauvrp.count - 1 dgv_vrp.rows.add() dgv_vrp.item(0, i).value = letableauvrp(i).gsnumero() dgv_vrp.item(1, i).value = letableauvrp(i).gsnom() dgv_vrp.item(2, i).value = letableauvrp(i).gsanciennete dgv_vrp.item(3, i).value = letableauvrp(i).gsca dgv_vrp.item(4, i).value = letableauvrp(i).gscontrat dgv_vrp.item(5, i).value = letableauvrp(i).gssalaire Next 'interdire d'ajouter des lignes dgv_vrp.allowusertoaddrows.equals(false) 1

Private Sub btn_mettreajour_click(sender As System.Object, e As System.EventArgs) Handles btn_mettreajour.click 'appeler la mise à jour dans la base de données controleur.modifiersalairedesvrp(letableauvrp) Private Sub btn_supprimer_click(sender As System.Object, e As System.EventArgs) Handles btn_supprimer.click End Class 'appeler la suppression d'un vrp controleur.supprimervrp(dgv_vrp.selectedrows.item(0).cells(0).value) 'supprimer la ligne dans la datagridview dgv_vrp.rows.remove(dgv_vrp.selectedrows.item(0)) LE CODE DU CONTROLEUR Public Class controleur 'classe statique, il est inutile de l'instancier 'on a besoin d'un vrp et d'un tabeau de vrp Shared levrp As New VRP Shared letableauvrp As List(Of VRP) = New List(Of VRP) Shared Function liretouslesvrp() As List(Of VRP) 'Récupération du tableau des VRP depuis la base de données levrp.chargertableau() letableauvrp = levrp.gettableauvrp() 'retour du tableau des vrp Return letableauvrp Shared Function calculertouslessalaires(letableauvrp As List(Of VRP)) As List(Of VRP) 'calculer le salaire des vrp levrp.calculersalaire(letableauvrp) letableauvrp = levrp.gettableauvrp() 'retour du tableau des vrp Return letableauvrp Shared Sub modifiersalairedesvrp(letableauvrp As List(Of VRP)) 'modifier les salaires des vrp dans la base levrp.mettreajourbase(letableauvrp) Shared Sub supprimervrp(byval numero As Integer) 'mettre à jour le numero dans l'objet vrp levrp.gsnumero() = numero 'appeler la suppression d'un vrp levrp.supprimervrp(levrp) 2

End Class LE CODE DE LA CLASSE VRP Imports System.Data Imports System.Data.SqlClient Imports System.Data.Sql Public Class VRP ' propriétés du VRP Private numero As Integer Private nom As String Private anciennete As Integer Private ca As Integer Private contrat As Integer Private salaire As Integer 'tableau des VRP de type VRP donc contenant un numéro, un nom, un ca, un nombre de contrat, un salaire 'qu'on appellera par tableauvrp(i).gssalaire par exemple Private tableauvrp As New List(Of VRP) ' propriétés nécessaires pour l'accès à la base de données Private connexion As SqlConnection Private macommande As SqlCommand Private monreader As SqlDataReader Private requete As String 'les constructeurs 'celui-ci n'initialise aucune propriété Public Sub New() Me.nom = "" Me.anciennete = 0 Me.ca = 0 Me.contrat = 0 Me.salaire = 0 'celui-ci initialise juste le numéro Public Sub New(numero As Integer) Me.numero = numero Me.nom = "" Me.anciennete = 0 Me.ca = 0 Me.contrat = 0 Me.salaire = 0 'celui-ci initialise toutes les propriétés sauf le tableau des vrp Public Sub New(numero As Integer, nom As String, anciennete As Integer, ca As Integer, contrat As Integer, salaire As Integer) Me.numero = numero Me.nom = nom Me.anciennete = anciennete 3

Me.ca = ca Me.contrat = contrat Me.salaire = salaire 'les getteurs et les setteurs qui permettent d'initialiser ou de récupérer les propriétés du vrp Public Property gsnumero() As Integer Return numero numero = value Public Property gsnom() As String Return nom Set(ByVal value As String) nom = value Public Property gsanciennete() As Integer Return anciennete anciennete = value Public Property gsca() As Integer Return ca ca = value Public Property gscontrat() As Integer Return contrat contrat = value Public Property gssalaire() As Integer Return salaire salaire = value 4

'ici en retourne le tableau des vrp Public Function gettableauvrp() As List(Of VRP) Return Me.tableauVrp Public Sub calculersalaire(tableauvrp As List(Of VRP)) Const fixe = 2000 For i = 0 To TableauVrp.Count - 1 TableauVrp(i).salaire = fixe 'prime anciennete If TableauVrp(i).anciennete > 3 Then TableauVrp(i).anciennete = 200 + TableauVrp(i).salaire 'prime de contrat If TableauVrp(i).ca > 22000 And TableauVrp(i).contrat > 15 Then TableauVrp(i).salaire = TableauVrp(i).salaire + TableauVrp(i).ca / TableauVrp(i).contrat * 1.08 ' prime de CA If TableauVrp(i).ca > 31000 Or TableauVrp(i).contrat > 10 Then TableauVrp(i).salaire = TableauVrp(i).salaire + 300 Next Public Sub chargertableau() requete = "SELECT * FROM VRP ;" 'instanciation de la connexion connexion = New SqlConnection() 'instanciation de la commande sql pour préparer son exécution macommande = New SqlCommand(requete, connexion) 'ouvrir une connection a la base de données VRP If seconnecteralabasededonnees(connexion) Then 'executer la commande SQL monreader = macommande.executereader 'enregistrer le résultats dans la liste des VRP Do While monreader.read 'on instancie l'objet Vrp et on utilise les données de la base comme paramètres dans le constructeur surchargé Dim levrp As New VRP(monReader("numero"), monreader("nom"), monreader("anciennete"), monreader("ca"), monreader("contrat"), 0) 'on ajoute un ligne et donc un vrp dans le tableau (liste) des vrp tableauvrp.add(levrp) Loop 'fermer le lecteur monreader.close() 'fermer la connexion connexion.close() Public Sub mettreajourbase(tableauvrp As List(Of VRP)) 5

requete = "" 'instanciation de la connexion à la base connexion = New SqlConnection() 'instanciation de la commande sql pour préparer son exécution macommande = New SqlCommand(requete, connexion) 'connexion à la base de données If seconnecteralabasededonnees(connexion) Then 'pour chaque ligne du tableau (liste) des vrp donc pour chaque vrp For i = 0 To tableauvrp.count - 1 'préparer la requète requete = "UPDATE VRP SET Salaire = " & Convert.ToString(tableauVrp(i).salaire) requete = requete & " WHERE numero = " & Convert.ToString(tableauVrp(i).numero) & ";" Next 'affecter la requete à la propriété commandtext de la commande sql macommande.commandtext = requete 'executer la commande SQL macommande.executenonquery() 'fermer la connexion connexion.close() Private Function seconnecteralabasededonnees(connexion As SqlConnection) As Boolean 'définition de la chaine de connexion connexion.connectionstring = "Data Source=localhost;Initial Catalog=VRP;Persist Security Info=false;User ID=sa;Password=root" 'ouverture de la connexion connexion.open() 'retour de l'état de la connexion If (connexion.state = ConnectionState.Open) Then Return True Else Return False Public Sub supprimervrp(levrp As VRP) requete = "Delete from VRP where numero = " 'instanciation de la connexion connexion = New SqlConnection() 'instanciation de la commande Sql macommande = New SqlCommand(requete, connexion) 6

'connexion à la base de données If seconnecteralabasededonnees(connexion) Then End Class 'on finit la requete en récupérant le numero de VRP requete = requete & Convert.ToString(leVrp.numero) & ";" 'on met la requete dans la commande SQL macommande.commandtext = requete 'on execute la commande Sql macommande.executenonquery() 'on ferme la connexion connexion.close() 7