SlideShare une entreprise Scribd logo
1  sur  70
Télécharger pour lire hors ligne
Microsoft Visual Basic .NET
 Découverte du nouvel environnement
Visual Studio .NET
 Éléments du langage Visual Basic .NET
 Étude et mise en œuvre des
fonctionnalités du nouveau Framework
.NET
 Programmation orientée objet et
développement de composants
réutilisables
 Accès aux données avec ADO .NET
Professeur: Hamza SAID
1
Accès aux données avec ADO .NET
 Introduction à ADO .NET et
notions de base sur SQL
Serveur
 Accès aux données grâce
aux objets ADO .NET
Professeur: Hamza SAID
2
1. Rappel sur les bases de données
2. Pourquoi ADO .NET ?
3. Présentation de SQL SERVEUR
Introduction à ADO .NET et
notions de base sur SQL Serveur
3
Professeur: Hamza SAID
Accès aux données avec ADO .NET
• Dans le langage courant, le terme base de données
est utilisé pour désigner toute source importante de
données telle qu'une encyclopédie
• En informatique, une base de données (Abr. : « BD »
ou « BDD ») est un lot d'informations stockées dans un
dispositif informatique.
• Les technologies existantes permettent:
• d'organiser et de structurer la base de données et mieux manipuler son contenu
• de stocker efficacement de très grandes quantités d'informations
Rappel sur les bases de données4
Professeur: Hamza SAID
Introduction à ADO .NET et
notions de base sur SQL Serveur
• L'organisation logique des données se fait selon un
modèle de données (Ex.: modèle de données relationnel)
• L'organisation logique est indépendante de la structure
physique
• Une modification de l'organisation logique ne provoque pas de modification de la
structure physique et vice-versa
• La motivation fondamentale de l'organisation des
données est de permettre d'effectuer des requêtes sur
celles-ci.
• Le modèle de données relationnel est aujourd'hui le plus utilisé parce qu'il est
formellement démontré que ce type de représentation permet de résoudre toutes
requêtes
Rappel sur les bases de données5
Professeur: Hamza SAID
Introduction à ADO .NET et
notions de base sur SQL Serveur
• Le logiciel qui manipule les bases de données est
appelé « Système de Gestion de Base de Données »
(SGBD)
• Il permet d'organiser, de contrôler, de consulter et de modifier la base de
données.
• Les opérations sont formulées dans un langage de requête tel que SQL – le
plus connu et employé pour les modèles relationnels.
Rappel sur les bases de données6
Professeur: Hamza SAID
Introduction à ADO .NET et
notions de base sur SQL Serveur
• Le catalogue de la librairie en ligne amazon.com est une des plus
grandes bases de données au monde avec plus de 250 millions
d'ouvrages catalogués. La société Amazon.com est également
propriétaire de la banque de données filmographique IMDb.
• Le Système d'information Schengen est une application de base de
données utilisée par les services de police et des douanes de l'Espace
Schengen, en Europe pour collecter et s'échanger des renseignements
judiciaires (mandats d'arrêt, empreintes digitales, interdictions de séjour...)
• Les logiciels antivirus utilisent souvent une base de données dans laquelle
sont enregistrées les empreintes laissées par les virus informatiques.
• Etc.
Exemples7
Professeur: Hamza SAID
Rappel sur les bases de données
1. Bref historique
2. Solution proposée par .NET
Pourquoi ADO .NET ?8
Professeur: Hamza SAID
Introduction à ADO .NET et
notions de base sur SQL Serveur
• L'une des principales raisons de l'évolution rapide qu'ont subie les
technologies d'accès aux données a été le besoin de réduire le couplage
existant entre l'application et la base de données
• La première étape marquante fut l'apparition de l'ODBC (Open Data
Base Connectivity)
• L'ODBC sert d'interface (middleware) entre les applications et la base de
données
• L'ODBC possède un gestionnaire de pilotes que l'on trouve dans le
panneau de configuration de Windows (comme un gestionnaire
d'impression)
• L'ODBC est basé sur des appels API écrits en C, les accès aux données se
sont vite révélés difficiles à mettre en oeuvre
Bref historique9
Professeur: Hamza SAID
Pourquoi ADO .NET ?
• Microsoft Access fut lancée avec une programmation fondée sur un
modèle objet beaucoup plus simple à manipuler que les API
• Ce qui conduit Microsoft a encapsuler ces API dans un modèle objet
nommé RDO(Remote Data Object) calqué sur le modèle Access
• Avec l'avènement d'Internet, il y a eu un besoin de répartir davantage
les traitements
• ADO (ActiveX Data Objects) sont apparues avec Visual Basic 6
• ADO sont des composants COM basés sur une nouvelle API nommée OLE
DB
• supportent plus de formats de données
• reprennent les sources de données ODBC
Bref historique10
Professeur: Hamza SAID
Pourquoi ADO .NET ?
• Avec cette architecture (ADO), on commence à parler
de "sources de données" de manière générique.
L'application qui utilise ces données est considérée
comme "consommateur de données"
• Problème majeur : ADO ne fonctionne que sous
Windows
Bref historique11
Professeur: Hamza SAID
Pourquoi ADO .NET ?
Sortie de l’ADO .NET qui présente les nouveautés
suivantes :
• Une architecture plus optimisée :
• de nouveaux fournisseurs de données voient le jour.
• Certains fournisseurs fonctionnent en mode natif:
• Suppression des couches intermédiaires entre l'application et sa source de données.
• Accès direct à la source de données.
• Par exemple le .NET Framework comprend le fournisseur de données SQL Server .NET
en mode natif via le namespace System.Data.SqlClient.
Solution proposée par .NET12
Professeur: Hamza SAID
Pourquoi ADO .NET ?
• Un meilleur support du mode déconnecté (Offline) :
• Dans une application Web, le maintien d'une connexion SGBD ouverte doit être
le plus court possible
• car le nombre de connexions ouvertes vers une source de données peut constituer un
frein à la capacité de montée en charge d'une application.
• Le modèle ADO dans son temps, avait évolué afin de répondre à ce besoin par
un Recordset déconnecté.
• Aujourd'hui Microsoft encourage le mode déconnecté et propose des classes
spécialisées supportant les deux modes :
• connecté (via l'objet DataReader)
• et déconnecté (via l'objet DataSet).
La réponse .NET13
Professeur: Hamza SAID
Pourquoi ADO .NET ?
• Un meilleur support de XML :
• Dans ADO .NET XML est utilisé comme le format de transmission universel de
données.
La réponse .NET14
Professeur: Hamza SAID
Pourquoi ADO .NET ?
Note :
Les ADO classiques sont toujours disponibles dans l'environnement
.NET
• Microsoft SQL Server est un système de gestion de
base de données (SGBD) développé et
commercialisé par la société Microsoft
• Initialement co-développé par Sybase et Microsoft
• Sa première version date de 1989
• La version 2008 de SQL Server est disponible depuis
août 2008. Elle est actuellement au niveau de service
pack 2
Présentation de SQL SERVEUR15
Professeur: Hamza SAID
Introduction à ADO .NET et
notions de base sur SQL Serveur
Fonctionnement16
Professeur: Hamza SAID
Présentation de SQL SERVEUR
1. Langages
2. Relations
3. Transactions
4. Fichiers
5. Objets de la base de données
6. Editions SQL Server
Fonctionnement17
Professeur: Hamza SAID
Présentation de SQL SERVEUR
• Pour les requêtes, SQL Server utilise T-SQL (Transact-
SQL)
• Il s'agit d'une implémentation de SQL qui prend en
charge les procédures stockées et les déclencheurs
(Trigger)
• Le T-SQL est incompatible avec le PL/SQL d'Oracle
Langages18
Professeur: Hamza SAID
Présentation de SQL SERVEUR
• SQL Server est un SGBD relationnel.
• Il est possible de définir des relations entre les tables
de façon à garantir fortement l'intégrité des données
qui y sont stockées.
• Ces relations peuvent être utilisées pour modifier ou
supprimer en chaîne des enregistrements liés
Relations19
Professeur: Hamza SAID
Présentation de SQL SERVEUR
• SQL Server est un SGBD transactionnel.
• Il est capable de préparer des modifications sur les
données d'une base et de les valider ou de les
annuler d'un bloc.
• Cela garantit l'intégrité des informations stockées
dans la base.
Transactions20
Professeur: Hamza SAID
Présentation de SQL SERVEUR
Les bases de données sont contenues physiquement dans des
fichiers. Les fichiers portent généralement les extensions :
• MDF (Main Database File) pour le premier fichier de données
• NDF (Next Database File) pour les autres fichiers de données
• LDF (Log Database File) pour les fichiers du journal de
transaction
• SDF (SQL Server Compact Edition Database File) pour les
bases de données SQL Server Compact
Fichiers21
Professeur: Hamza SAID
Présentation de SQL SERVEUR
• Plusieurs objets peuvent coexister :
• Tables
• Vues
• Index
• Procédures stockées
• Déclencheurs (Triggers)
• Fonctions (UDF : User Defined Function)
• Aspects objet
• Ex.: la possibilité de réaliser des types complexes structurés via un langage externe
de type .net et de les utiliser aussi bien en tant que colonne de table qu'en tant que
type d'une variable dans une routine (procédure, déclencheur ou fonction).
Objets de la base de données22
Professeur: Hamza SAID
Présentation de SQL SERVEUR
23
• Datacenter Edition:
• Amenée à apparaître avec SQL Server 2008 R2, elle supportera jusqu'à 256 processeurs, ainsi
que la virtualisation illimitée.
• Enterprise Edition:
• Elle supporte un nombre de processeurs et une taille de mémoire vive illimitée (limités par le
système d'exploitation) et n'a pas de limite quant à la taille des bases de données.
• Developer Edition:
• Il s'agit d'une édition pour les développeurs qui dispose des mêmes fonctionnalités que l'édition
Entreprise. Cependant la licence contient des restrictions quant à son utilisation.
• Standard Edition:
• Elle supporte jusqu'à 4 processeurs et une taille de mémoire vive illimitée (limitée par le
système d'exploitation) et n'a pas de limite quant à la taille des bases de données.
Editions SQL Server24
Professeur: Hamza SAID
Présentation de SQL SERVEUR
• Workgroup Edition:
• Nouvelle édition apparue avec SQL Server 2005. Elle supporte jusqu'à 2 processeurs et 3 Go de mémoire
vive, et n'a pas de limite quant à la taille des bases de données.
• Web Edition:
• Nouvelle édition apparue sous SQL Server 2008. Proche de l'édition Standard en termes de fonctionnalité. Sa
licence ne permet son utilisation que comme serveur de base de données pour un site ou service Web.
• Express Edition:
• Microsoft a édité une édition gratuite composée uniquement du moteur de base de données relationnel, bridé
à 4 Go d'espace disque (10 Go dans la version 2008 R2) et 5 utilisateurs concurrents en exécution.
• Compact Edition:
• Appelée auparavant : Pocket PC / Mobile / Everywhere Edition. Il s'agit d'une édition légère adaptée à
l'utilisation sur des PDA ou smartphones munis de Windows Mobile. La version Compact (version 3.5), qui
succède aux éditions Mobile s'ouvre elle aux postes de travail classiques à base de Windows. Cette édition
peut participer à une réplication en tant qu'abonné.
Editions SQL Server25
Professeur: Hamza SAID
Présentation de SQL SERVEUR
Accès aux données avec ADO .NET
 Introduction à ADO .NET et
notions de base sur SQL
Serveur
 Accès aux données grâce
aux objets ADO .NET
Professeur: Hamza SAID
26
1. Choix d'un fournisseur de données .NET
2. Le modèle objet ADO .NET
3. L'objet « Connection »
4. L'objet « Command »
5. L'objet « DataReader »
6. L'objet « DataSet »
7. L'objet « DataAdapter »
8. Les contrôles d'accès aux données
Accès aux données grâce aux objets ADO .NET
27
Professeur: Hamza SAID
Accès aux données avec ADO .NET
• OLE DB et ODBC sont des fournisseurs de données
• Leurs successeurs sous .NET sont les "Providers" ou
fournisseurs d'accès managés
• Un fournisseur managé et géré et optimisé par le
Framework .NET
• C'est lui qui gère les connexions aux bases de
données
Provider (Fournisseur d’accès managé)28
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• Pour pouvoir faire appel aux classes proposées par ADO .NET il est
nécessaire d'inclure une référence à l'espace de noms correspondant.
• Plusieurs espaces de noms sont disponibles avec ADO .NET parmi
lesquels :
Choix d'un fournisseur de données .NET29
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Espace de nom Description
System.Data.SqlClient Fournisseur de données spécifiques pour SQLServer V7 ou supérieure
System.Data.SqlServerCe Fournisseur de données spécifiques pour SQL Server Compact
System.Data.OleDb Propose la gestion de sources de données accédées via un driver
(générique) OleDb
System.Data.Odbc Propose la gestion de sources de données accédées via un driver Odbc
System.Data.OracleClient Propose un accès à des sources de données Oracle (v8.1.7 ou supérieure)
• Dans nos exemples nous allons toujours travailler avec le
fournisseur SQL Server Compact.
• L'utilisation des autres fournisseurs se fait de manière similaire.
La seule distinction est le nom qui est préfixé par OLE DB,
SQL, SQLCe etc.
Choix d'un fournisseur de données .NET30
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
'Inclusion d'un namespace
Imports System.Data.SqlServerCe
• ADO .NET comprend quelques objets similaires aux
ADO (comme les objets « Connection » et
« Command »)
• L'objet Recordset n'existe plus, il a été remplacé par
les objets « DataReader » et « DataSet ».
Le modèle objet ADO .NET31
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• L’objet « Connection » est
toujours nécessaire pour
accéder à une base de
données
• Ensuite, deux approches
peuvent être adoptées:
1. Extraire des données en lecture seule
avec un « DataReader »
2. Créer un « DataSet » permettant de
manipuler les données
Le modèle objet ADO .NET32
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• Le « DataReader » utilise
l’objet « Command » pour
accéder aux données
• Le « DataSet » est
alimenté par un objet
« DataAdapter »
Le modèle objet ADO .NET33
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• 3ème approche : exécuter
des instructions SQL
UPDATE, INSERT ou DELETE
directement à partir d’un
objet « Command »
Le modèle objet ADO .NET34
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Le modèle objet ADO .NET35
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Objet Description
Connection Ouvre une connexion vers une source de données spécifique
Command Exécute une commande sur une source de données
DataReader Lit un flux de données à partir d'une source de données en mode
connecté. Le mode d'accès est en lecture seule avec un curseur en avant
seulement.
DataSet Représente un ensemble de données en mode déconnecté. Il peut être
constitué de plusieurs tables ainsi que des relations et contraintes existant
entre elles.
DataAdapter Remplit un DataSet et répercute les mises à jour dans la source de
données.
• La connectivité à une base de données est assurée par l'objet
« Connection ».
• Le Framework .NET propose des objets de connexion
différents en fonction du type de fournisseur de données
choisi.
• Exemple:
• Pour un fournisseur SQL Server Compact on utilise l'objet « SqlCeConnection »
• Pour une connectivité à SQL Server Express on utilise « SqlConnection » de l'espace de noms
« System.Data.SqlClient ».
• « OleDbConnection » si votre fournisseur est un fournisseur « OleDb ».
• L'ouverture d'une connexion est réalisée par la méthode
« Open » et la fermeture par la méthode « Close ».
L'objet « Connection »36
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
L'objet « Connection » - Exemple37
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
oConnection.Open()
Console.WriteLine("Etat de la connexion : " & oConnection.State)
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
L'objet « Connection » - Exemple38
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
oConnection.Open()
Console.WriteLine("Etat de la connexion : " & oConnection.State)
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Instanciation
d’un objet
« Connection »
Fermeture de la connexion
Ouverture de la connexion
• C'est une chaîne de caractère qui donne des informations
sur une source de données et les moyens pour s'y
connecter.
• Elle est passée à un Driver ou un Provider (Fournisseur) pour
pouvoir initier une connexion
• Exemple:
• "Data Source=|DataDirectory|Northwind.sdf"
• On peut stocker la « ConnectionString » dans le fichier
« App.config » de notre projet pour avoir un meilleur accès à
cette information
• Note: lors de l'ajout d'une source de données au projet, la « connectionString » est
automatiquement créée dans le fichier « App.config »
La chaîne de connexion (ConnectionString)
39
Professeur: Hamza SAID
L'objet « Connection »
La chaîne de connexion (ConnectionString)
40
Professeur: Hamza SAID
L'objet « Connection »
Exemple de fichier « App.config »:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="NorthwindConnectionString"
connectionString="Data Source=|DataDirectory|Northwind.sdf"
providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
</configuration>
La chaîne de connexion - Exemple41
Professeur: Hamza SAID
L'objet « Connection »
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection( _
My.Settings.NorthwindConnectionString)
oConnection.Open()
Console.WriteLine("Etat de la connexion : " & oConnection.State)
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Grâce au fichier « App.config » on peut réécrire l'exemple précédent comme suit:
Utilisation de la chaîne de connexion,
nommée « NorthwindConnectionString »
stockée dans le fichier « App.config »
• Une fois la connexion vers une base de données effectuée, on peut
exécuter une requête et récupérer son résultat grâce à l'objet
« Command ».
• La création d'un objet Command nécessite l'instanciation d'un objet
« SqlCeCommand » (dans le cas de SQL Server Compact).
• SQLCeCommand expose différentes méthodes "Execute" à utiliser
selon le résultat attendu :
• ExecuteReader : peut être utilisé pour récupérer un jeu d'enregistrements et
retourne un objet « DataReader ».
• ExecuteScalar : récupère une valeur unitaire.
• ExecuteNonQuery : exécute une commande ne retournant pas de lignes.
•
L'objet « Command »42
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Exemple: La méthode « ExecuteNonQuery »
43
Professeur: Hamza SAID
L'objet « Command »
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')«
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
oCommand.ExecuteNonQuery()
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Exemple: La méthode « ExecuteNonQuery »
44
Professeur: Hamza SAID
L'objet « Command »
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')«
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
oCommand.ExecuteNonQuery()
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Création de l’objet
« Command »
Exécution de la
commande
Exemple: La méthode « ExecuteScalar »45
Professeur: Hamza SAID
L'objet Command
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf«
Dim strRequete As String = "SELECT Count(*) FROM Categories“
Dim iResultat As Integer
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
iResultat = oCommand.ExecuteScalar
Console.WriteLine("Nb de lignes enregistrées :" & iResultat)
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Exemple: La méthode « ExecuteScalar »46
Professeur: Hamza SAID
L'objet Command
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf«
Dim strRequete As String = "SELECT Count(*) FROM Categories“
Dim iResultat As Integer
Try
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
iResultat = oCommand.ExecuteScalar
Console.WriteLine("Nb de lignes enregistrées :" & iResultat)
oConnection.Close()
Catch e As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Création de l’objet
« Command »
Exécution de la
commande
• Scénario :
• On doit effectuer un virement bancaire d'un compte vers un autre. Dans
ce cas-ci, il faut réaliser deux opérations : le crédit d'un montant donné
sur premier compte et le débit du même montant sur un autre.
• L'équilibre de la balance des comptes ne pourrait pas être respecté si
une erreur quelconque se produisait entre les deux opérations.
• Pour éviter ce genre de situation, une série de
modifications doit être exécutée au sein d'une même
transaction afin de la rendre indivisible.
• En cas d'erreur détectée, l'ensemble des modifications est
alors annulé, et les données reprennent leur état initial.
L'objet « Transaction »47
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
L'objet « Transaction » - Exemple48
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf«
Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')“
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim tr As SqlCeTransaction = oConnection.BeginTransaction
Try
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
oCommand.ExecuteNonQuery()
tr.Commit()
oConnection.Close()
Catch e As Exception
tr.Rollback()
oConnection.Close()
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
L'objet « Transaction » - Exemple49
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf«
Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')“
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim tr As SqlCeTransaction = oConnection.BeginTransaction
Try
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
oCommand.ExecuteNonQuery()
tr.Commit()
oConnection.Close()
Catch e As Exception
tr.Rollback()
oConnection.Close()
Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Commencer la
transaction
Appliquer les
changements
Annuler les
changements
• L'objet « DataReader » permet de récupérer d'une
source de données un flux en lecture seule en avant
seulement (read only, forward only).
• Il résulte de l'exécution de la méthode
« ExecuteReader » sur un objet « Command ».
• La méthode « Close » ferme un objet
« DataReader ».
L'objet « DataReader »50
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• L'objet « DataReader » ne stocke en mémoire qu'une seule
ligne à la fois à chaque appel de la méthode « Read »
• Il est possible d'accéder aux valeurs de colonnes soit par leurs
noms soit par leurs références ordinales.
• Une solution plus performante est proposée permettant
d'accéder aux valeurs dans leurs types de données natifs
(GetInt32, GetDouble, GetString .).
L'objet « DataReader »51
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Exemple:
Si la première colonne de la ligne indicée
par 0 est de type int, alors il est possible de
la récupérer à l'aide de la méthode
GetInt32 de l'objet « DataReader ».
Dim iColonne As Integer
iColonne = oDataReader.GetInt32(0)
• Il est recommandé d'utiliser cet objet si :
• Vous n'avez pas besoin de réaliser un cache des données
• Vous traitez un jeu d'enregistrements trop important pour être stocké en
mémoire
• Vous souhaitez accéder à des données rapidement en lecture seule en avant
seulement
L'objet « DataReader »52
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
L'objet « DataReader » - Exemple53
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
' Exemple d'extraction de données avec l'objet DataReader
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String
strRequete = "SELECT [Category ID], [Category Name] FROM Categories;"
Try
Dim oConnection As New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
Dim oReader As SqlCeDataReader = oCommand.ExecuteReader()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetName(0), oReader.GetName(1))
While oReader.Read()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetInt32(0), oReader.GetString(1))
End While
oReader.Close()
oConnection.Close()
Catch ex As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & ex.Message)
End Try
L'objet « DataReader » - Exemple54
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
' Exemple d'extraction de données avec l'objet DataReader
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String
strRequete = "SELECT [Category ID], [Category Name] FROM Categories;"
Try
Dim oConnection As New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
Dim oReader As SqlCeDataReader = oCommand.ExecuteReader()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetName(0), oReader.GetName(1))
While oReader.Read()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetInt32(0), oReader.GetString(1))
End While
oReader.Close()
oConnection.Close()
Catch ex As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & ex.Message)
End Try
Récupération de l’objet
« DataReader »
Lecture ligne par ligne
de données
Fermeture du
« DataReader »
L'objet « DataReader » - Exemple55
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
' Exemple d'extraction de données avec l'objet DataReader
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String
strRequete = "SELECT [Category ID], [Category Name] FROM Categories;"
Try
Dim oConnection As New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
Dim oReader As SqlCeDataReader = oCommand.ExecuteReader()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetName(0), oReader.GetName(1))
While oReader.Read()
Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}",
oReader.GetInt32(0), oReader.GetString(1))
End While
oReader.Close()
oConnection.Close()
Catch ex As Exception
Console.WriteLine("L'erreur suivante a été rencontrée :" & ex.Message)
End Try
Récupération de l’objet
« DataReader »
Lecture ligne par ligne
de données
Fermeture du
« DataReader »
Résultat de l'exécution:
-----------------------------------
Category ID Category Name
1 Beverages
2 Condiments
3 Confections
4 Dairy Products
5 Grains/Cereals
6 Meat/Poultry
7 Produce
8 Seafood
• Le DataSet est une représentation globale de notre
base de données
• Il repose sur le langage XML (Extensible Markup
Language)
• Il peut comporter des tables, des vues, des relations,
etc.
• Le « DataSet » permet de manipuler les bases de
données en mode déconnecté
L'objet « DataSet »56
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• Les principaux bénéfices qui se dégagent de ce
mode de fonctionnement sont les suivants :
• Le serveur n'a pas besoin de maintenir de connexion
active ni de gestion de curseur pendant que l'application
effectue ses traitements
• Le serveur peut faire face à une augmentation de charges
beaucoup plus facilement
• Du point de vue de l'application, les performances seront
toujours optimales, puisque la plupart des opérations
seront réalisées localement
L'objet « DataSet »57
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
L'objet « DataSet » - Exemple58
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• L'objet « DataAdapter » nous permet de manipuler des
objets « DataSet »
• Il assure la liaison entre une base de données et un
« DataSet »
• Cet objet permet d'extraire, ajouter, supprimer, trier...
les données d'une base de données en offline, par lots
en se basant sur les données du « DataSet ».
• L'objet « DataAdapter » est souvent utilisé avec des
contrôles d'affichage ou d'édition de données tels que
« DataGridView »
L'objet « DataAdapter »59
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
L'objet « DataAdapter »
Exemple d'extraction de données
60
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Try
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String = "SELECT * FROM Categories“
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
Dim ds As New DataSet
Dim da As SqlCeDataAdapter = New SqlCeDataAdapter(strRequete, strConnexion)
da.Fill(ds)
oConnection.Close()
DataGridView1.DataSource = ds.Tables(0)
Catch e As Exception
MsgBox("L'erreur suivante a été rencontrée :" & e.Message)
End Try
L'objet « DataAdapter »
Exemple d'extraction de données
61
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Try
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String = "SELECT * FROM Categories“
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
Dim ds As New DataSet
Dim da As SqlCeDataAdapter = New SqlCeDataAdapter(strRequete, strConnexion)
da.Fill(ds)
oConnection.Close()
DataGridView1.DataSource = ds.Tables(0)
Catch e As Exception
MsgBox("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Création de l’objet
« DataAdapter »
Remplissage du « DataSet » avec des
données de la base de données grâce
au « DataAdapter » créé
Affectation d’une table du
« DataSet » à un contrôle
« DataGridView » pour
l’affichage
Création de l’objet
« DataSet » pour
contenir les données
L'objet « DataAdapter » - Resultat
Exemple d'extraction de données
62
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Try
Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf"
Dim strRequete As String = "SELECT * FROM Categories“
Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion)
Dim oCommand As New SqlCeCommand(strRequete, oConnection)
oConnection.Open()
Dim ds As New DataSet
Dim da As SqlCeDataAdapter = New SqlCeDataAdapter(strRequete, strConnexion)
da.Fill(ds)
oConnection.Close()
DataGridView1.DataSource = ds.Tables(0)
Catch e As Exception
MsgBox("L'erreur suivante a été rencontrée :" & e.Message)
End Try
Création de l’objet
« DataAdapter »
Remplissage du « DataSet » avec des
données de la base de données grâce
au « DataAdapter » créé
Affectation d’une table du
« DataSet » à un contrôle
« DataGridView » pour
l’affichage
Création de l’objet
« DataSet » pour
contenir les données
• On remarque ici qu'on peut fournir directement une
table (DataTable) du DataSet comme source à un
contrôle « DataGridView »
DataGridView1.DataSource = ds.Tables(0)
• La mise à jour et la suppression de données se font
par lot en invoquant la méthode "Update". Tous les
changements effectués dans le DataSet seront
répercutés sur la Base de données
L'objet « DataAdapter »63
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
• Le DataAdapter encapsule quatre objets Command :
• Une instruction SQL SELECT qui permet d'extraire les informations voulues
• Les trois autres commandes sont générées d'après cette commande SELECT, afin
de disposer des instructions SQL UPDATE, INSERT et DELETE
• Ces trois dernières commandes peuvent soit être écrites manuellement, soit être
obtenues grâce à l'objet « SqlCeCommandBuilder »
L'objet « DataAdapter »64
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Dim cmdBuilder As SqlCeCommandBuilder = New SqlCeCommandBuilder(da)
L'objet « DataAdapter »
Exemple de mise à jour de données
65
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Try
Dim cmdBuilder As SqlCeCommandBuilder = New SqlCeCommandBuilder(da)
Dim changes As DataSet = ds.GetChanges()
If changes IsNot Nothing Then
da.Update(changes)
End If
MsgBox("Changes Done")
Catch ex As Exception
MsgBox("L'erreur suivante a été rencontrée :" & ex.Message)
End Try
Note importante:
Dans cet exemple, on suppose
que le DataSet (ds) et le
DataAdapter (da) ont été déjà
créés
L'objet « DataAdapter »
Exemple de mise à jour de données
66
Professeur: Hamza SAID
Accès aux données grâce aux objets
ADO .NET
Try
Dim cmdBuilder As SqlCeCommandBuilder = New SqlCeCommandBuilder(da)
Dim changes As DataSet = ds.GetChanges()
If changes IsNot Nothing Then
da.Update(changes)
End If
MsgBox("Changes Done")
Catch ex As Exception
MsgBox("L'erreur suivante a été rencontrée :" & ex.Message)
End Try
On crée l’objet
« SqlCeCommandBuilder » en lui
passant en paramètre notre
« DataAdapter »
On demande au DataSet de nous
fournir les changements qui ont été
effectués
Mise à jour de la base de
données avec les
changements récupérés
Note importante:
Dans cet exemple, on suppose
que le DataSet (ds) et le
DataAdapter (da) ont été déjà
créés
L'objet « DataAdapter »67
Professeur: Hamza SAID
Exemple
Pour des besoins de simplicité, l'environnement .NET propose des contrôles capables de
générer un « DataSet » complètement opérationnel en un temps record.
Les contrôles d'accès aux données68
Professeur: Hamza SAID
Démonstration
1. Construisez une base de données SQL Server Compact pour
une gestion de contacts
2. Créez un formulaire capable d’exploiter cette base de
données (Ajout, modification, suppression et affichage des
contacts). Utilisez la 3ème approche: Exécution de commandes
SQL avec un objet « Command ».
Exercice – Gestionnaire de contacts69
Professeur: Hamza SAID
Accès aux données avec ADO .NET
• Architecture et Fonctionnement des objets ADO .NET
• Fonctionnement de SQL SERVER
• Fournisseurs de données (Provider)
• Les objets « Connection », « Command »,
« DataReader », « DataSet » et « DataAdapter »
• Les contrôles d'accès aux données
En bref70
Professeur: Hamza SAID
Accès aux données avec ADO .NET

Contenu connexe

Tendances

Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMireille Blay-Fornarino
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQLkamar MEDDAH
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesStéphane Di Cioccio
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèseCOMPETENSIS
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIMansouri Khalifa
 
UML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriUML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriMansouri Khalifa
 
Administration Reseau
Administration ReseauAdministration Reseau
Administration Reseaudenischef1
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applicationsMohammed Jaafar
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Systèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionSystèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 

Tendances (20)

Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequences
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèse
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURI
 
Uml classes Par les exemples
Uml classes Par les exemplesUml classes Par les exemples
Uml classes Par les exemples
 
Modelisation conception SI
Modelisation conception SIModelisation conception SI
Modelisation conception SI
 
UML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriUML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouri
 
Administration Reseau
Administration ReseauAdministration Reseau
Administration Reseau
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Cours uml
Cours umlCours uml
Cours uml
 
Systèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introductionSystèmes d'Exploitation - chp1-introduction
Systèmes d'Exploitation - chp1-introduction
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 

Similaire à 11 visual basic .net - acces aux donnees avec ado .net

Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementLudovic REUS
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDenodo
 
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...CERTyou Formation
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDenodo
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSoft Computing
 
Introduction à Cloud Foundry Journée du Code 2017
Introduction à Cloud Foundry Journée du Code 2017Introduction à Cloud Foundry Journée du Code 2017
Introduction à Cloud Foundry Journée du Code 2017Gerard Konan
 
Cl213 g formation-db2-10-pour-luw-administration-de-base-pour-aix
Cl213 g formation-db2-10-pour-luw-administration-de-base-pour-aixCl213 g formation-db2-10-pour-luw-administration-de-base-pour-aix
Cl213 g formation-db2-10-pour-luw-administration-de-base-pour-aixCERTyou Formation
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginnersyazidaguedal
 
Presentation of Oracle database products
Presentation of Oracle database productsPresentation of Oracle database products
Presentation of Oracle database productsAlgiers Tech Meetup
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbcvangogue
 
Cloud computing cours in power point chap
Cloud computing cours in power point chapCloud computing cours in power point chap
Cloud computing cours in power point chapaichafarahsouelmi
 
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationSession en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationDenodo
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeMongoDB
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
 

Similaire à 11 visual basic .net - acces aux donnees avec ado .net (20)

Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développement
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
 
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
 
Base donnes my_sql
Base donnes my_sqlBase donnes my_sql
Base donnes my_sql
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Introduction à Cloud Foundry Journée du Code 2017
Introduction à Cloud Foundry Journée du Code 2017Introduction à Cloud Foundry Journée du Code 2017
Introduction à Cloud Foundry Journée du Code 2017
 
Cl213 g formation-db2-10-pour-luw-administration-de-base-pour-aix
Cl213 g formation-db2-10-pour-luw-administration-de-base-pour-aixCl213 g formation-db2-10-pour-luw-administration-de-base-pour-aix
Cl213 g formation-db2-10-pour-luw-administration-de-base-pour-aix
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginners
 
Presentation of Oracle database products
Presentation of Oracle database productsPresentation of Oracle database products
Presentation of Oracle database products
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbc
 
Cloud computing cours in power point chap
Cloud computing cours in power point chapCloud computing cours in power point chap
Cloud computing cours in power point chap
 
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationSession en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 

Plus de Hamza SAID

09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...Hamza SAID
 
09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chaineeHamza SAID
 
09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risqueHamza SAID
 
08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptionsHamza SAID
 
09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrieHamza SAID
 
07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick noteHamza SAID
 
07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaireHamza SAID
 
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...Hamza SAID
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...Hamza SAID
 
06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableauxHamza SAID
 
06 visual basic .net - exercice sur les collections
06 visual basic .net - exercice sur les collections06 visual basic .net - exercice sur les collections
06 visual basic .net - exercice sur les collectionsHamza SAID
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...Hamza SAID
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...Hamza SAID
 
04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exerciceHamza SAID
 
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...Hamza SAID
 
03 visual basic .net - notions de base
03 visual basic .net - notions de base03 visual basic .net - notions de base
03 visual basic .net - notions de baseHamza SAID
 
02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .netHamza SAID
 
01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours01 visual basic .net - presentation du cours
01 visual basic .net - presentation du coursHamza SAID
 

Plus de Hamza SAID (18)

09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
 
09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee
 
09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque
 
08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions
 
09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie
 
07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note
 
07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire
 
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
07 visual basic .net - etude et mise en oeuvre des fonctionnalites du nouveau...
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
 
06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux
 
06 visual basic .net - exercice sur les collections
06 visual basic .net - exercice sur les collections06 visual basic .net - exercice sur les collections
06 visual basic .net - exercice sur les collections
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice
 
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
 
03 visual basic .net - notions de base
03 visual basic .net - notions de base03 visual basic .net - notions de base
03 visual basic .net - notions de base
 
02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net
 
01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours
 

Dernier

Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...Unidad de Espiritualidad Eudista
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Majida Antonios, M.Ed.
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfAtelier Canopé 37 - Tours
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Atelier Canopé 37 - Tours
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfAtelier Canopé 37 - Tours
 

Dernier (13)

Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 

11 visual basic .net - acces aux donnees avec ado .net

  • 1. Microsoft Visual Basic .NET  Découverte du nouvel environnement Visual Studio .NET  Éléments du langage Visual Basic .NET  Étude et mise en œuvre des fonctionnalités du nouveau Framework .NET  Programmation orientée objet et développement de composants réutilisables  Accès aux données avec ADO .NET Professeur: Hamza SAID 1
  • 2. Accès aux données avec ADO .NET  Introduction à ADO .NET et notions de base sur SQL Serveur  Accès aux données grâce aux objets ADO .NET Professeur: Hamza SAID 2
  • 3. 1. Rappel sur les bases de données 2. Pourquoi ADO .NET ? 3. Présentation de SQL SERVEUR Introduction à ADO .NET et notions de base sur SQL Serveur 3 Professeur: Hamza SAID Accès aux données avec ADO .NET
  • 4. • Dans le langage courant, le terme base de données est utilisé pour désigner toute source importante de données telle qu'une encyclopédie • En informatique, une base de données (Abr. : « BD » ou « BDD ») est un lot d'informations stockées dans un dispositif informatique. • Les technologies existantes permettent: • d'organiser et de structurer la base de données et mieux manipuler son contenu • de stocker efficacement de très grandes quantités d'informations Rappel sur les bases de données4 Professeur: Hamza SAID Introduction à ADO .NET et notions de base sur SQL Serveur
  • 5. • L'organisation logique des données se fait selon un modèle de données (Ex.: modèle de données relationnel) • L'organisation logique est indépendante de la structure physique • Une modification de l'organisation logique ne provoque pas de modification de la structure physique et vice-versa • La motivation fondamentale de l'organisation des données est de permettre d'effectuer des requêtes sur celles-ci. • Le modèle de données relationnel est aujourd'hui le plus utilisé parce qu'il est formellement démontré que ce type de représentation permet de résoudre toutes requêtes Rappel sur les bases de données5 Professeur: Hamza SAID Introduction à ADO .NET et notions de base sur SQL Serveur
  • 6. • Le logiciel qui manipule les bases de données est appelé « Système de Gestion de Base de Données » (SGBD) • Il permet d'organiser, de contrôler, de consulter et de modifier la base de données. • Les opérations sont formulées dans un langage de requête tel que SQL – le plus connu et employé pour les modèles relationnels. Rappel sur les bases de données6 Professeur: Hamza SAID Introduction à ADO .NET et notions de base sur SQL Serveur
  • 7. • Le catalogue de la librairie en ligne amazon.com est une des plus grandes bases de données au monde avec plus de 250 millions d'ouvrages catalogués. La société Amazon.com est également propriétaire de la banque de données filmographique IMDb. • Le Système d'information Schengen est une application de base de données utilisée par les services de police et des douanes de l'Espace Schengen, en Europe pour collecter et s'échanger des renseignements judiciaires (mandats d'arrêt, empreintes digitales, interdictions de séjour...) • Les logiciels antivirus utilisent souvent une base de données dans laquelle sont enregistrées les empreintes laissées par les virus informatiques. • Etc. Exemples7 Professeur: Hamza SAID Rappel sur les bases de données
  • 8. 1. Bref historique 2. Solution proposée par .NET Pourquoi ADO .NET ?8 Professeur: Hamza SAID Introduction à ADO .NET et notions de base sur SQL Serveur
  • 9. • L'une des principales raisons de l'évolution rapide qu'ont subie les technologies d'accès aux données a été le besoin de réduire le couplage existant entre l'application et la base de données • La première étape marquante fut l'apparition de l'ODBC (Open Data Base Connectivity) • L'ODBC sert d'interface (middleware) entre les applications et la base de données • L'ODBC possède un gestionnaire de pilotes que l'on trouve dans le panneau de configuration de Windows (comme un gestionnaire d'impression) • L'ODBC est basé sur des appels API écrits en C, les accès aux données se sont vite révélés difficiles à mettre en oeuvre Bref historique9 Professeur: Hamza SAID Pourquoi ADO .NET ?
  • 10. • Microsoft Access fut lancée avec une programmation fondée sur un modèle objet beaucoup plus simple à manipuler que les API • Ce qui conduit Microsoft a encapsuler ces API dans un modèle objet nommé RDO(Remote Data Object) calqué sur le modèle Access • Avec l'avènement d'Internet, il y a eu un besoin de répartir davantage les traitements • ADO (ActiveX Data Objects) sont apparues avec Visual Basic 6 • ADO sont des composants COM basés sur une nouvelle API nommée OLE DB • supportent plus de formats de données • reprennent les sources de données ODBC Bref historique10 Professeur: Hamza SAID Pourquoi ADO .NET ?
  • 11. • Avec cette architecture (ADO), on commence à parler de "sources de données" de manière générique. L'application qui utilise ces données est considérée comme "consommateur de données" • Problème majeur : ADO ne fonctionne que sous Windows Bref historique11 Professeur: Hamza SAID Pourquoi ADO .NET ?
  • 12. Sortie de l’ADO .NET qui présente les nouveautés suivantes : • Une architecture plus optimisée : • de nouveaux fournisseurs de données voient le jour. • Certains fournisseurs fonctionnent en mode natif: • Suppression des couches intermédiaires entre l'application et sa source de données. • Accès direct à la source de données. • Par exemple le .NET Framework comprend le fournisseur de données SQL Server .NET en mode natif via le namespace System.Data.SqlClient. Solution proposée par .NET12 Professeur: Hamza SAID Pourquoi ADO .NET ?
  • 13. • Un meilleur support du mode déconnecté (Offline) : • Dans une application Web, le maintien d'une connexion SGBD ouverte doit être le plus court possible • car le nombre de connexions ouvertes vers une source de données peut constituer un frein à la capacité de montée en charge d'une application. • Le modèle ADO dans son temps, avait évolué afin de répondre à ce besoin par un Recordset déconnecté. • Aujourd'hui Microsoft encourage le mode déconnecté et propose des classes spécialisées supportant les deux modes : • connecté (via l'objet DataReader) • et déconnecté (via l'objet DataSet). La réponse .NET13 Professeur: Hamza SAID Pourquoi ADO .NET ?
  • 14. • Un meilleur support de XML : • Dans ADO .NET XML est utilisé comme le format de transmission universel de données. La réponse .NET14 Professeur: Hamza SAID Pourquoi ADO .NET ? Note : Les ADO classiques sont toujours disponibles dans l'environnement .NET
  • 15. • Microsoft SQL Server est un système de gestion de base de données (SGBD) développé et commercialisé par la société Microsoft • Initialement co-développé par Sybase et Microsoft • Sa première version date de 1989 • La version 2008 de SQL Server est disponible depuis août 2008. Elle est actuellement au niveau de service pack 2 Présentation de SQL SERVEUR15 Professeur: Hamza SAID Introduction à ADO .NET et notions de base sur SQL Serveur
  • 17. 1. Langages 2. Relations 3. Transactions 4. Fichiers 5. Objets de la base de données 6. Editions SQL Server Fonctionnement17 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 18. • Pour les requêtes, SQL Server utilise T-SQL (Transact- SQL) • Il s'agit d'une implémentation de SQL qui prend en charge les procédures stockées et les déclencheurs (Trigger) • Le T-SQL est incompatible avec le PL/SQL d'Oracle Langages18 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 19. • SQL Server est un SGBD relationnel. • Il est possible de définir des relations entre les tables de façon à garantir fortement l'intégrité des données qui y sont stockées. • Ces relations peuvent être utilisées pour modifier ou supprimer en chaîne des enregistrements liés Relations19 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 20. • SQL Server est un SGBD transactionnel. • Il est capable de préparer des modifications sur les données d'une base et de les valider ou de les annuler d'un bloc. • Cela garantit l'intégrité des informations stockées dans la base. Transactions20 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 21. Les bases de données sont contenues physiquement dans des fichiers. Les fichiers portent généralement les extensions : • MDF (Main Database File) pour le premier fichier de données • NDF (Next Database File) pour les autres fichiers de données • LDF (Log Database File) pour les fichiers du journal de transaction • SDF (SQL Server Compact Edition Database File) pour les bases de données SQL Server Compact Fichiers21 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 22. • Plusieurs objets peuvent coexister : • Tables • Vues • Index • Procédures stockées • Déclencheurs (Triggers) • Fonctions (UDF : User Defined Function) • Aspects objet • Ex.: la possibilité de réaliser des types complexes structurés via un langage externe de type .net et de les utiliser aussi bien en tant que colonne de table qu'en tant que type d'une variable dans une routine (procédure, déclencheur ou fonction). Objets de la base de données22 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 23. 23
  • 24. • Datacenter Edition: • Amenée à apparaître avec SQL Server 2008 R2, elle supportera jusqu'à 256 processeurs, ainsi que la virtualisation illimitée. • Enterprise Edition: • Elle supporte un nombre de processeurs et une taille de mémoire vive illimitée (limités par le système d'exploitation) et n'a pas de limite quant à la taille des bases de données. • Developer Edition: • Il s'agit d'une édition pour les développeurs qui dispose des mêmes fonctionnalités que l'édition Entreprise. Cependant la licence contient des restrictions quant à son utilisation. • Standard Edition: • Elle supporte jusqu'à 4 processeurs et une taille de mémoire vive illimitée (limitée par le système d'exploitation) et n'a pas de limite quant à la taille des bases de données. Editions SQL Server24 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 25. • Workgroup Edition: • Nouvelle édition apparue avec SQL Server 2005. Elle supporte jusqu'à 2 processeurs et 3 Go de mémoire vive, et n'a pas de limite quant à la taille des bases de données. • Web Edition: • Nouvelle édition apparue sous SQL Server 2008. Proche de l'édition Standard en termes de fonctionnalité. Sa licence ne permet son utilisation que comme serveur de base de données pour un site ou service Web. • Express Edition: • Microsoft a édité une édition gratuite composée uniquement du moteur de base de données relationnel, bridé à 4 Go d'espace disque (10 Go dans la version 2008 R2) et 5 utilisateurs concurrents en exécution. • Compact Edition: • Appelée auparavant : Pocket PC / Mobile / Everywhere Edition. Il s'agit d'une édition légère adaptée à l'utilisation sur des PDA ou smartphones munis de Windows Mobile. La version Compact (version 3.5), qui succède aux éditions Mobile s'ouvre elle aux postes de travail classiques à base de Windows. Cette édition peut participer à une réplication en tant qu'abonné. Editions SQL Server25 Professeur: Hamza SAID Présentation de SQL SERVEUR
  • 26. Accès aux données avec ADO .NET  Introduction à ADO .NET et notions de base sur SQL Serveur  Accès aux données grâce aux objets ADO .NET Professeur: Hamza SAID 26
  • 27. 1. Choix d'un fournisseur de données .NET 2. Le modèle objet ADO .NET 3. L'objet « Connection » 4. L'objet « Command » 5. L'objet « DataReader » 6. L'objet « DataSet » 7. L'objet « DataAdapter » 8. Les contrôles d'accès aux données Accès aux données grâce aux objets ADO .NET 27 Professeur: Hamza SAID Accès aux données avec ADO .NET
  • 28. • OLE DB et ODBC sont des fournisseurs de données • Leurs successeurs sous .NET sont les "Providers" ou fournisseurs d'accès managés • Un fournisseur managé et géré et optimisé par le Framework .NET • C'est lui qui gère les connexions aux bases de données Provider (Fournisseur d’accès managé)28 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 29. • Pour pouvoir faire appel aux classes proposées par ADO .NET il est nécessaire d'inclure une référence à l'espace de noms correspondant. • Plusieurs espaces de noms sont disponibles avec ADO .NET parmi lesquels : Choix d'un fournisseur de données .NET29 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Espace de nom Description System.Data.SqlClient Fournisseur de données spécifiques pour SQLServer V7 ou supérieure System.Data.SqlServerCe Fournisseur de données spécifiques pour SQL Server Compact System.Data.OleDb Propose la gestion de sources de données accédées via un driver (générique) OleDb System.Data.Odbc Propose la gestion de sources de données accédées via un driver Odbc System.Data.OracleClient Propose un accès à des sources de données Oracle (v8.1.7 ou supérieure)
  • 30. • Dans nos exemples nous allons toujours travailler avec le fournisseur SQL Server Compact. • L'utilisation des autres fournisseurs se fait de manière similaire. La seule distinction est le nom qui est préfixé par OLE DB, SQL, SQLCe etc. Choix d'un fournisseur de données .NET30 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET 'Inclusion d'un namespace Imports System.Data.SqlServerCe
  • 31. • ADO .NET comprend quelques objets similaires aux ADO (comme les objets « Connection » et « Command ») • L'objet Recordset n'existe plus, il a été remplacé par les objets « DataReader » et « DataSet ». Le modèle objet ADO .NET31 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 32. • L’objet « Connection » est toujours nécessaire pour accéder à une base de données • Ensuite, deux approches peuvent être adoptées: 1. Extraire des données en lecture seule avec un « DataReader » 2. Créer un « DataSet » permettant de manipuler les données Le modèle objet ADO .NET32 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 33. • Le « DataReader » utilise l’objet « Command » pour accéder aux données • Le « DataSet » est alimenté par un objet « DataAdapter » Le modèle objet ADO .NET33 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 34. • 3ème approche : exécuter des instructions SQL UPDATE, INSERT ou DELETE directement à partir d’un objet « Command » Le modèle objet ADO .NET34 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 35. Le modèle objet ADO .NET35 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Objet Description Connection Ouvre une connexion vers une source de données spécifique Command Exécute une commande sur une source de données DataReader Lit un flux de données à partir d'une source de données en mode connecté. Le mode d'accès est en lecture seule avec un curseur en avant seulement. DataSet Représente un ensemble de données en mode déconnecté. Il peut être constitué de plusieurs tables ainsi que des relations et contraintes existant entre elles. DataAdapter Remplit un DataSet et répercute les mises à jour dans la source de données.
  • 36. • La connectivité à une base de données est assurée par l'objet « Connection ». • Le Framework .NET propose des objets de connexion différents en fonction du type de fournisseur de données choisi. • Exemple: • Pour un fournisseur SQL Server Compact on utilise l'objet « SqlCeConnection » • Pour une connectivité à SQL Server Express on utilise « SqlConnection » de l'espace de noms « System.Data.SqlClient ». • « OleDbConnection » si votre fournisseur est un fournisseur « OleDb ». • L'ouverture d'une connexion est réalisée par la méthode « Open » et la fermeture par la méthode « Close ». L'objet « Connection »36 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 37. L'objet « Connection » - Exemple37 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Try Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) oConnection.Open() Console.WriteLine("Etat de la connexion : " & oConnection.State) oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try
  • 38. L'objet « Connection » - Exemple38 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Try Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) oConnection.Open() Console.WriteLine("Etat de la connexion : " & oConnection.State) oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try Instanciation d’un objet « Connection » Fermeture de la connexion Ouverture de la connexion
  • 39. • C'est une chaîne de caractère qui donne des informations sur une source de données et les moyens pour s'y connecter. • Elle est passée à un Driver ou un Provider (Fournisseur) pour pouvoir initier une connexion • Exemple: • "Data Source=|DataDirectory|Northwind.sdf" • On peut stocker la « ConnectionString » dans le fichier « App.config » de notre projet pour avoir un meilleur accès à cette information • Note: lors de l'ajout d'une source de données au projet, la « connectionString » est automatiquement créée dans le fichier « App.config » La chaîne de connexion (ConnectionString) 39 Professeur: Hamza SAID L'objet « Connection »
  • 40. La chaîne de connexion (ConnectionString) 40 Professeur: Hamza SAID L'objet « Connection » Exemple de fichier « App.config »: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="NorthwindConnectionString" connectionString="Data Source=|DataDirectory|Northwind.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" /> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" /> </startup> </configuration>
  • 41. La chaîne de connexion - Exemple41 Professeur: Hamza SAID L'objet « Connection » Try Dim oConnection As SqlCeConnection = New SqlCeConnection( _ My.Settings.NorthwindConnectionString) oConnection.Open() Console.WriteLine("Etat de la connexion : " & oConnection.State) oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try Grâce au fichier « App.config » on peut réécrire l'exemple précédent comme suit: Utilisation de la chaîne de connexion, nommée « NorthwindConnectionString » stockée dans le fichier « App.config »
  • 42. • Une fois la connexion vers une base de données effectuée, on peut exécuter une requête et récupérer son résultat grâce à l'objet « Command ». • La création d'un objet Command nécessite l'instanciation d'un objet « SqlCeCommand » (dans le cas de SQL Server Compact). • SQLCeCommand expose différentes méthodes "Execute" à utiliser selon le résultat attendu : • ExecuteReader : peut être utilisé pour récupérer un jeu d'enregistrements et retourne un objet « DataReader ». • ExecuteScalar : récupère une valeur unitaire. • ExecuteNonQuery : exécute une commande ne retournant pas de lignes. • L'objet « Command »42 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 43. Exemple: La méthode « ExecuteNonQuery » 43 Professeur: Hamza SAID L'objet « Command » Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')« Try Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() oCommand.ExecuteNonQuery() oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try
  • 44. Exemple: La méthode « ExecuteNonQuery » 44 Professeur: Hamza SAID L'objet « Command » Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')« Try Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() oCommand.ExecuteNonQuery() oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try Création de l’objet « Command » Exécution de la commande
  • 45. Exemple: La méthode « ExecuteScalar »45 Professeur: Hamza SAID L'objet Command Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf« Dim strRequete As String = "SELECT Count(*) FROM Categories“ Dim iResultat As Integer Try Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() iResultat = oCommand.ExecuteScalar Console.WriteLine("Nb de lignes enregistrées :" & iResultat) oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try
  • 46. Exemple: La méthode « ExecuteScalar »46 Professeur: Hamza SAID L'objet Command Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf« Dim strRequete As String = "SELECT Count(*) FROM Categories“ Dim iResultat As Integer Try Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() iResultat = oCommand.ExecuteScalar Console.WriteLine("Nb de lignes enregistrées :" & iResultat) oConnection.Close() Catch e As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try Création de l’objet « Command » Exécution de la commande
  • 47. • Scénario : • On doit effectuer un virement bancaire d'un compte vers un autre. Dans ce cas-ci, il faut réaliser deux opérations : le crédit d'un montant donné sur premier compte et le débit du même montant sur un autre. • L'équilibre de la balance des comptes ne pourrait pas être respecté si une erreur quelconque se produisait entre les deux opérations. • Pour éviter ce genre de situation, une série de modifications doit être exécutée au sein d'une même transaction afin de la rendre indivisible. • En cas d'erreur détectée, l'ensemble des modifications est alors annulé, et les données reprennent leur état initial. L'objet « Transaction »47 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 48. L'objet « Transaction » - Exemple48 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf« Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')“ Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim tr As SqlCeTransaction = oConnection.BeginTransaction Try Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() oCommand.ExecuteNonQuery() tr.Commit() oConnection.Close() Catch e As Exception tr.Rollback() oConnection.Close() Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try
  • 49. L'objet « Transaction » - Exemple49 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf« Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')“ Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim tr As SqlCeTransaction = oConnection.BeginTransaction Try Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() oCommand.ExecuteNonQuery() tr.Commit() oConnection.Close() Catch e As Exception tr.Rollback() oConnection.Close() Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try Commencer la transaction Appliquer les changements Annuler les changements
  • 50. • L'objet « DataReader » permet de récupérer d'une source de données un flux en lecture seule en avant seulement (read only, forward only). • Il résulte de l'exécution de la méthode « ExecuteReader » sur un objet « Command ». • La méthode « Close » ferme un objet « DataReader ». L'objet « DataReader »50 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 51. • L'objet « DataReader » ne stocke en mémoire qu'une seule ligne à la fois à chaque appel de la méthode « Read » • Il est possible d'accéder aux valeurs de colonnes soit par leurs noms soit par leurs références ordinales. • Une solution plus performante est proposée permettant d'accéder aux valeurs dans leurs types de données natifs (GetInt32, GetDouble, GetString .). L'objet « DataReader »51 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Exemple: Si la première colonne de la ligne indicée par 0 est de type int, alors il est possible de la récupérer à l'aide de la méthode GetInt32 de l'objet « DataReader ». Dim iColonne As Integer iColonne = oDataReader.GetInt32(0)
  • 52. • Il est recommandé d'utiliser cet objet si : • Vous n'avez pas besoin de réaliser un cache des données • Vous traitez un jeu d'enregistrements trop important pour être stocké en mémoire • Vous souhaitez accéder à des données rapidement en lecture seule en avant seulement L'objet « DataReader »52 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 53. L'objet « DataReader » - Exemple53 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET ' Exemple d'extraction de données avec l'objet DataReader Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String strRequete = "SELECT [Category ID], [Category Name] FROM Categories;" Try Dim oConnection As New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() Dim oReader As SqlCeDataReader = oCommand.ExecuteReader() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetName(0), oReader.GetName(1)) While oReader.Read() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetInt32(0), oReader.GetString(1)) End While oReader.Close() oConnection.Close() Catch ex As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & ex.Message) End Try
  • 54. L'objet « DataReader » - Exemple54 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET ' Exemple d'extraction de données avec l'objet DataReader Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String strRequete = "SELECT [Category ID], [Category Name] FROM Categories;" Try Dim oConnection As New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() Dim oReader As SqlCeDataReader = oCommand.ExecuteReader() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetName(0), oReader.GetName(1)) While oReader.Read() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetInt32(0), oReader.GetString(1)) End While oReader.Close() oConnection.Close() Catch ex As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & ex.Message) End Try Récupération de l’objet « DataReader » Lecture ligne par ligne de données Fermeture du « DataReader »
  • 55. L'objet « DataReader » - Exemple55 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET ' Exemple d'extraction de données avec l'objet DataReader Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String strRequete = "SELECT [Category ID], [Category Name] FROM Categories;" Try Dim oConnection As New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() Dim oReader As SqlCeDataReader = oCommand.ExecuteReader() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetName(0), oReader.GetName(1)) While oReader.Read() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetInt32(0), oReader.GetString(1)) End While oReader.Close() oConnection.Close() Catch ex As Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & ex.Message) End Try Récupération de l’objet « DataReader » Lecture ligne par ligne de données Fermeture du « DataReader » Résultat de l'exécution: ----------------------------------- Category ID Category Name 1 Beverages 2 Condiments 3 Confections 4 Dairy Products 5 Grains/Cereals 6 Meat/Poultry 7 Produce 8 Seafood
  • 56. • Le DataSet est une représentation globale de notre base de données • Il repose sur le langage XML (Extensible Markup Language) • Il peut comporter des tables, des vues, des relations, etc. • Le « DataSet » permet de manipuler les bases de données en mode déconnecté L'objet « DataSet »56 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 57. • Les principaux bénéfices qui se dégagent de ce mode de fonctionnement sont les suivants : • Le serveur n'a pas besoin de maintenir de connexion active ni de gestion de curseur pendant que l'application effectue ses traitements • Le serveur peut faire face à une augmentation de charges beaucoup plus facilement • Du point de vue de l'application, les performances seront toujours optimales, puisque la plupart des opérations seront réalisées localement L'objet « DataSet »57 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 58. L'objet « DataSet » - Exemple58 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 59. • L'objet « DataAdapter » nous permet de manipuler des objets « DataSet » • Il assure la liaison entre une base de données et un « DataSet » • Cet objet permet d'extraire, ajouter, supprimer, trier... les données d'une base de données en offline, par lots en se basant sur les données du « DataSet ». • L'objet « DataAdapter » est souvent utilisé avec des contrôles d'affichage ou d'édition de données tels que « DataGridView » L'objet « DataAdapter »59 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 60. L'objet « DataAdapter » Exemple d'extraction de données 60 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Try Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String = "SELECT * FROM Categories“ Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() Dim ds As New DataSet Dim da As SqlCeDataAdapter = New SqlCeDataAdapter(strRequete, strConnexion) da.Fill(ds) oConnection.Close() DataGridView1.DataSource = ds.Tables(0) Catch e As Exception MsgBox("L'erreur suivante a été rencontrée :" & e.Message) End Try
  • 61. L'objet « DataAdapter » Exemple d'extraction de données 61 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Try Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String = "SELECT * FROM Categories“ Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() Dim ds As New DataSet Dim da As SqlCeDataAdapter = New SqlCeDataAdapter(strRequete, strConnexion) da.Fill(ds) oConnection.Close() DataGridView1.DataSource = ds.Tables(0) Catch e As Exception MsgBox("L'erreur suivante a été rencontrée :" & e.Message) End Try Création de l’objet « DataAdapter » Remplissage du « DataSet » avec des données de la base de données grâce au « DataAdapter » créé Affectation d’une table du « DataSet » à un contrôle « DataGridView » pour l’affichage Création de l’objet « DataSet » pour contenir les données
  • 62. L'objet « DataAdapter » - Resultat Exemple d'extraction de données 62 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Try Dim strConnexion As String = "Data Source=|DataDirectory|Northwind.sdf" Dim strRequete As String = "SELECT * FROM Categories“ Dim oConnection As SqlCeConnection = New SqlCeConnection(strConnexion) Dim oCommand As New SqlCeCommand(strRequete, oConnection) oConnection.Open() Dim ds As New DataSet Dim da As SqlCeDataAdapter = New SqlCeDataAdapter(strRequete, strConnexion) da.Fill(ds) oConnection.Close() DataGridView1.DataSource = ds.Tables(0) Catch e As Exception MsgBox("L'erreur suivante a été rencontrée :" & e.Message) End Try Création de l’objet « DataAdapter » Remplissage du « DataSet » avec des données de la base de données grâce au « DataAdapter » créé Affectation d’une table du « DataSet » à un contrôle « DataGridView » pour l’affichage Création de l’objet « DataSet » pour contenir les données
  • 63. • On remarque ici qu'on peut fournir directement une table (DataTable) du DataSet comme source à un contrôle « DataGridView » DataGridView1.DataSource = ds.Tables(0) • La mise à jour et la suppression de données se font par lot en invoquant la méthode "Update". Tous les changements effectués dans le DataSet seront répercutés sur la Base de données L'objet « DataAdapter »63 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET
  • 64. • Le DataAdapter encapsule quatre objets Command : • Une instruction SQL SELECT qui permet d'extraire les informations voulues • Les trois autres commandes sont générées d'après cette commande SELECT, afin de disposer des instructions SQL UPDATE, INSERT et DELETE • Ces trois dernières commandes peuvent soit être écrites manuellement, soit être obtenues grâce à l'objet « SqlCeCommandBuilder » L'objet « DataAdapter »64 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Dim cmdBuilder As SqlCeCommandBuilder = New SqlCeCommandBuilder(da)
  • 65. L'objet « DataAdapter » Exemple de mise à jour de données 65 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Try Dim cmdBuilder As SqlCeCommandBuilder = New SqlCeCommandBuilder(da) Dim changes As DataSet = ds.GetChanges() If changes IsNot Nothing Then da.Update(changes) End If MsgBox("Changes Done") Catch ex As Exception MsgBox("L'erreur suivante a été rencontrée :" & ex.Message) End Try Note importante: Dans cet exemple, on suppose que le DataSet (ds) et le DataAdapter (da) ont été déjà créés
  • 66. L'objet « DataAdapter » Exemple de mise à jour de données 66 Professeur: Hamza SAID Accès aux données grâce aux objets ADO .NET Try Dim cmdBuilder As SqlCeCommandBuilder = New SqlCeCommandBuilder(da) Dim changes As DataSet = ds.GetChanges() If changes IsNot Nothing Then da.Update(changes) End If MsgBox("Changes Done") Catch ex As Exception MsgBox("L'erreur suivante a été rencontrée :" & ex.Message) End Try On crée l’objet « SqlCeCommandBuilder » en lui passant en paramètre notre « DataAdapter » On demande au DataSet de nous fournir les changements qui ont été effectués Mise à jour de la base de données avec les changements récupérés Note importante: Dans cet exemple, on suppose que le DataSet (ds) et le DataAdapter (da) ont été déjà créés
  • 67. L'objet « DataAdapter »67 Professeur: Hamza SAID Exemple
  • 68. Pour des besoins de simplicité, l'environnement .NET propose des contrôles capables de générer un « DataSet » complètement opérationnel en un temps record. Les contrôles d'accès aux données68 Professeur: Hamza SAID Démonstration
  • 69. 1. Construisez une base de données SQL Server Compact pour une gestion de contacts 2. Créez un formulaire capable d’exploiter cette base de données (Ajout, modification, suppression et affichage des contacts). Utilisez la 3ème approche: Exécution de commandes SQL avec un objet « Command ». Exercice – Gestionnaire de contacts69 Professeur: Hamza SAID Accès aux données avec ADO .NET
  • 70. • Architecture et Fonctionnement des objets ADO .NET • Fonctionnement de SQL SERVER • Fournisseurs de données (Provider) • Les objets « Connection », « Command », « DataReader », « DataSet » et « DataAdapter » • Les contrôles d'accès aux données En bref70 Professeur: Hamza SAID Accès aux données avec ADO .NET