je vous fait parvenir directement l'enoncé parce que je n'arrive pas a me connecter a la base de donnée via le code en VB.net.
Merci a+.
ps: je n'arrive pas a ajouter un fichier *.rar
1) Objectif
Le but de ce test est de créer une petite application en Visual Basic .Net 2005 permettant de gérer des thésaurus d'examens biologiques.
Un examen biologique (bilan sanguin, test HIV .) est souvent prescrit à un patient lors d'une consultation d'anesthésie par un médecin anesthésiste en vue de l'opération. Un thésaurus d'examens est un regroupement d'examens biologiques. L'intérêt des thésaurus est de prescrire en une fois plusieurs examens dont la prescription revient souvent pour des opérations types.
Un thésaurus possède un libellé unique obligatoire, et il possède un ou plusieurs examens.
Un examen possède un libellé unique obligatoire.
L'interface homme machine (IHM) à réaliser se présente de la manière suivante (copie d'écran d'un logiciel en VB6) :
La liste de gauche affiche tous les noms de thésaurus. En sélectionnant un item dans la liste, le libellé du thésaurus s'affiche, ainsi qu'une double liste.
Double liste : la liste de gauche contient tous les examens qui n'appartiennent pas au thésaurus sélectionné. La liste de droite contient tous les examens du thésaurus. Dans cet exemple, le thésaurus Groupe II possède les examens Numération Formule (NFS), Plaquettes, TQ TCA INR, Ionogramme Sanguin, Urée Créatine et Glycémie.
Le bouton >> permet d'ajouter à la liste de droite l'examen sélectionné dans la liste de gauche, inversement pour le bouton <<.
Le bouton Nouveau permet d'initialiser l'interface afin de créer un nouveau thésaurus (passage en mode création).
Le bouton Sauvegarder permet soit :
- De créer dans la base de données le thésaurus si on est en mode création.
- De modifier dans la base de données le thésaurus sélectionné dans la liste si on n'est pas en mode création.
Le bouton Effacer permet d'effacer dans la base de données le thésaurus sélectionné dans la liste.
2) Base de données
Les 3 tables utiles pour ce test sont définies par le modèle logique des données suivant :
Description :
- Table examen : contient les examens biologiques (clé primaire auto incrémentée).
- Table examen_thesaurus : contient les thésaurus d'examens (clé primaire auto incrémentée).
- Table examen_thesaurus_contenu : contient les liens entre thésaurus et examens.
3) Conception objet
L'application à développer devra contenir au moins les 2 classes VB.Net suivantes :
Classe Examen |
- m_iClef As Integer - m_sNom As String |
|
Correspond à la clé primaire
Correspond au libellé de l'examen
Classe ExamenThesaurus |
- m_iClef As Integer - m_sNom As String - m_cExamen as Collection |
+ Charger() as Collection + Creer() + Modifier() + Supprimer() |
Correspond à la clé primaire
Correspond au libellé du thésaurus
Collection d'objets de type Examen
Méthode Shared renvoyant une collection de tous les thésaurus de la BDD
Méthode permettant d'insérer un thésaurus dans la BDD
Méthode permettant de modifier un thésaurus dans la BDD
Méthode permettant de supprimer un thésaurus de la BDD
Afin d'utiliser MySQL avec Visual Basic .Net, une classe BDD est fournie.
Exemple d'utilisation de la classe :
Dim sql AsString
Dim dtTable As DataTable
Dim oBDD As BDD
Dim sServeur AsString = "localhost"
Dim sBase AsString = "base_test"
Dim sUser AsString = "root"
Dim sPwd AsString = "mot de passe"
Dim sPort AsString = "3306"
'connexion
oBDD = New BDD(sServeur, sBase, sUser, sPwd, sport)
oBDD.Connecter()
'requête de sélection
sql = "SELECT CHAMP1,CHAMP2 FROM TABLE_TEST"
Try
'exécution requête
dtTable = oBdd.ExecuteSelect(sql)
ForEach dtRow As DataRow In dtTable.Rows
Console.WriteLine("Champ 1 : " & dtRow.Item("CHAMP1"))
Console.WriteLine("Champ 2 : " & dtRow.Item("CHAMP2"))
Next
'requête d'insertion
sql = "INSERT INTO TABLE_TEST(CHAMP1,CHAMP2) VALUES (3,4)"
oBDD.ExecuteAction(sql)
Catch ex As Exception
EndTry
4) Fichiers fournis pour le test
- test.sql : script SQL avec les tables nécessaires au test (structure + données)
- BDD.vb : classe VB.Net BDD
- MySql.Data.msi : extension MySQL pour le Framework 2.0, à installer pour utiliser la classe BDD.
test.sql:
SET NAMES utf8;
SET SQL_MODE='';
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
/*Table structure for table `examen` */
DROP TABLE IF EXISTS `examen`;
CREATE TABLE `examen` (
`CLEF` smallint(6) unsigned NOT NULL auto_increment,
`NOM` varchar(50) NOT NULL,
PRIMARY KEY (`CLEF`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*Data for the table `examen` */
insert into `examen` (`CLEF`,`NOM`) values (1,'Numération Formule (NFS)'),(2,'Plaquettes'),(3,'Groupe Sanguin'),(4,'Recherche Agglutinines Irréguli�res (RAI)'),(5,'TQ TCA INR'),(6,'Crase compl�te'),(7,'Ionogramme Sanguin'),(8,'Urée Créatine'),(9,'Glycémie'),(10,'Bilan hépatique'),(11,'Amylasémie Amylasurie'),(12,'CPK LDH'),(13,'Bilan Pré-transfusionnel'),(14,'HIV'),(15,'HBs'),(16,'Diagnostic Biologique de grossesse'),(17,'ECBU'),(18,'Activité anti Xa'),(19,'Sérologie hépatite C');
/*Table structure for table `examen_thesaurus` */
DROP TABLE IF EXISTS `examen_thesaurus`;
CREATE TABLE `examen_thesaurus` (
`CLEF` smallint(6) unsigned NOT NULL auto_increment,
`NOM` varchar(50) NOT NULL,
PRIMARY KEY (`CLEF`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*Data for the table `examen_thesaurus` */
insert into `examen_thesaurus` (`CLEF`,`NOM`) values (1,'Groupe I'),(2,'Groupe II'),(3,'Groupe III');
/*Table structure for table `examen_thesaurus_contenu` */
DROP TABLE IF EXISTS `examen_thesaurus_contenu`;
CREATE TABLE `examen_thesaurus_contenu` (
`CLEF_EXAMEN` smallint(6) unsigned NOT NULL,
`CLEF_THESAURUS` smallint(6) unsigned NOT NULL,
PRIMARY KEY (`CLEF_EXAMEN`,`CLEF_THESAURUS`),
KEY `CLEF_EXAMEN` (`CLEF_EXAMEN`),
KEY `CLEF_THESAURUS` (`CLEF_THESAURUS`),
CONSTRAINT `examen_thesaurus_contenu_ibfk_1` FOREIGN KEY (`CLEF_EXAMEN`) REFERENCES `examen` (`CLEF`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `examen_thesaurus_contenu_ibfk_2` FOREIGN KEY (`CLEF_THESAURUS`) REFERENCES `examen_thesaurus` (`CLEF`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*Data for the table `examen_thesaurus_contenu` */
insert into `examen_thesaurus_contenu` (`CLEF_EXAMEN`,`CLEF_THESAURUS`) values (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,3),(4,3),(5,1),(5,2),(5,3),(7,2),(7,3),(8,2),(8,3),(9,2),(9,3);
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
BDD.vb
Imports MySql.Data.MySqlClient
Public Class BDD
#Region "PRIVATE"
Private m_sServeur As String
Private m_sBase As String
Private m_sUser As String
Private m_sPwd As String
Private m_sPort As String
Private m_myConnexion As MySqlConnection
#End Region
#Region "CONSTRUCTEUR"
'+ Constructeur par défaut
Public Sub New()
End Sub
'+ Constructeur avec valeurs propriétés
Public Sub New(ByVal sServeur As String, ByVal sBase As String, ByVal sUser As String, ByVal sPwd As String, ByVal sPort As String)
m_sServeur = sServeur
m_sBase = sBase
m_sUser = sUser
m_sPwd = sPwd
m_sPort = sPort
End Sub
#End Region
#Region "PROPERTY"
Public Property Serveur() As String
Get
Return m_sServeur
End Get
Set(ByVal Value As String)
m_sServeur = Value
End Set
End Property
Public Property Base() As String
Get
Return m_sBase
End Get
Set(ByVal Value As String)
m_sBase = Value
End Set
End Property
Public Property User() As String
Get
Return m_sUser
End Get
Set(ByVal Value As String)
m_sUser = Value
End Set
End Property
Public Property Pwd() As String
Get
Return m_sPwd
End Get
Set(ByVal Value As String)
m_sPwd = Value
End Set