Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Chaque fournisseur est relié à une base de données propre, c'est-à-dire qu’il est compatible à l’API
de sa base de données. Cependant, les bases de données peuvent implémenter plusieurs API (par
exemple en installant certains pilotes comme ODBC pour l’ODBC) :
Fournisseur Description
SQL Server Les classes de ce fournisseur se trouvent dans l’espace de nom
System.Data.SqlClient, chaque nom de ces classes est préfixé par
Sql. SQL Server à accès au serveur sans utiliser d’autres couches logicielles le rendant
plus performant.
1
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
Remarque : SQL Server et Oracle sont tous deux des fournisseurs de données managés. C'est-à-dire
qu’ils sont optimisés pour certains types de bases de données.
Afin que l’accès aux données soit sûr, les fournisseurs de données doivent être disponibles sur le
poste de travail. La méthode GetFactoryClasses de la classe DbProviderFactories permet de donner
les fournisseurs disponibles sur le poste de travail en question. Il faut, par contre, ajouter l’espace de
nom System.Data.Common. Par exemple :
‘VB
Imports System.Data;
Imports System.Data.Common;
//A rajouter
Sub Main()
Dim listeFournisseur As DataTable
listeFournisseur = DbProviderFactories.GetFactoryClasses()
2
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
Pour dialoguer avec la base de données, tous ces fournisseurs implémentent six classes de bases :
Classe Description
Command Stocke les informations sur la commande et permet son exécution sur le
serveur de base de données.
CommandBuilder Permet de générer automatiquement des commandes ainsi que des
paramètres pour un DataAdapter.
Connection Permet d’établir une connexion à une source de données spécifiée.
DataAdapter Permet le transfert de données de la base de données vers l'application et
inversement (par exemple pour une mise à jour, suppression ou modification
de données). Il est utilisé en mode déconnecté
Remarque : La classe Connection n’apparaît pas dans le Framework 3.5. En effet, les classes des
fournisseurs managés ont leur propre classe tel que SqlConnection.
3. Interface portable
Les classes de chaque fournisseur varient, et donc par conséquence, le code devient spécifique à un
fournisseur. Mais il existe une solution pour remédier à ce problème : on peut utiliser comme type de
données les interfaces qu’elles implémentent. En effet, les classes spécifiques aux fournisseurs
permettront juste d’établir la connexion, on pourra ensuite utiliser que ces interfaces. Les six classes
données dans le tableau précédent implémentent leurs interfaces respectives :
3
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
Interface Description
IDataAdapter Permet de remplir et actualiser un objet DataSet et de mettre à jour une source
de données.
IDataReader Permet de lire un ou plusieurs flux de données en lecture seule à la suite de
l’exécution d’une commande.
IDataParameter Permet d’implémenter un paramètre pour une commande.
IDbCommand Permet de donner une commande qui s’exécutera au moment de la connexion à
une source de données.
IDbConnection Représente une connexion unique avec une source de données.
IDbDataAdapter Représente un jeu de méthodes qui permet d’exécuter des opérations sur des
bases de données relationnelles (insertion, sélection, …).
IDbTransaction Représente une transaction à exécuter au niveau d’une source de données.
Ces interfaces ne montrent pas l’étendue des possibilités que peut donner un fournisseur managé.
En effet, les fournisseurs managés comprennent leurs propres classes permettant plus d’actions ou
en les améliorant.
‘VB
Imports System.Data;
Imports System.Data.Common;
Imports System.Data.SqlClient;
//A rajouter
Sub Main()
Dim requete, connexionString As String
connexionString = "Data Source=.\SQLServeur;Initial
Catalog=DotNetFrance;Integrated
Security=true;" requete =
"SELECT * FROM Employe"
Dim connexion As IDbConnection = New
SqlConnection(connexionString)
Dim commande As IDbCommand = connexion.CreateCommand()
commande.CommandText = requete
commande.CommandType = CommandType.Text
connexion.Open()
Dim lire As IDataReader = commande.ExecuteReader()
While (lire.Read())
Console.WriteLine("ID:{0}|Nom:{1}|Prenom:{2}|RoleNumero:{3}",
lire.GetInt32(O), lire.GetString(1), lire("Prenom"), lire("Role"))
End While
connexion.Close()
4
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
connexion.Dispose()
Console.ReadLine()
End Sub
Une table peut être vue comme un tableau à deux dimensions ou chaque ligne représente les
informations relatives à un seul sujet. Cette ligne, appelée aussi enregistrement (record), est
composée d’une suite structurée d’informations (champs) sur le dit sujet. Par exemple, pour le
cas d’une table client, chaque ligne contiendra pour un seul client (les champs) les informations
suivantes:
On dit qu’un enregistrement (une ligne d’une table) est composé d’un ensemble de champs ou
d’attributs. Chaque champ peut être d’un type standard de données comme ceux de VB (Integer,
String, Date, …). La figure 30 montre un exemple d’une table de produits. Les noms des champs
sont donnés à la première ligne.
5
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
La figure 30 montre un exemple d’une base de données pour la gestion de livres dans une
bibliothèque. Elle est composée de quatre tables, Authors, Title Author, Titles et Publishers. Cette
figure montre uniquement les structures (les différents champs qui composent les
enregistrements) des différentes tables.
Il existe dans le commerce plusieurs systèmes de gestion de base de données (SGBD), tels que
Oracle, Sybase, SQL server, DB2, Informix, Dbase, MS Access, etc. Dans ce cours, on utilisera
Microsoft Access. VB .NET permet de travailler avec une base de données de type MS Access sans
disposer du logiciel MS Access1. Dans la suite de ce syllabus, on va voir comment créer et
interroger une base de données.
Pour créer une base de données, sélectionnez Blank Database. MDB est l’extension du fichier
contenant une base de données de type Access. Microsoft Access vous invite à introduire le nom
1
Notez que VB permet de travailler avec d’autres types de base de données en utilisant des outils plus
avancés, mais qui sortent du cadre de ce cours.
6
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
de la base de données à créer. Après confirmation de votre part, il ouvre une fenêtre :
Nom_Database : Database.
Pour ajouter un table à la base de données cliquez sur Create Table in Design View. Microsoft
Access ouvre la fenêtre de définition de la structure d’une table, figure 32. Pour ajouter des
champs à la table, cliquez dans Field Name et insérez le type de donnée contenu dans ce champ
(colonne Data Type). Si vous voulez indiquer que l’un des champs est la clé primaire, sélectionnez
le champ (mettre le curseur sur la bonne ligne) et appuyez sur l’icône avec une clé (dans la barre
des outils).
Lorsque tous les champs sont complétés, fermez la fenêtre et n’oubliez pas de donner un nom à
votre table.
7
Par Dr NGUENANG Louis Bernard
Support de cours Programmation Evénementielle I
Pour ajouter une nouvelle table, il faut recommencer le même processus. Pour modifier la
définition de la structure, cliquez sur la nom de la table avec la bouton droit de la souris et
sélectionnez, Design View.
Lorsque vous aurez créé toutes vos tables, il s’agira d’indiquer les relations existant entre-elles.
Pour cela, cliquez sur l’icône (Relationships). Sélectionnez d’abord les tables à insérer dans le
schéma et reliez-les les unes avec les autres.
Une fois que vous aurez créé toutes les tables et leurs structures, fermez votre base de données,
(File, Close).
8
Par Dr NGUENANG Louis Bernard