ADO.Net et bases de données sous Visual Basic.Net

Programming, Databases, ADO.Net · course

Browse all bases de données documents

Chapitre 5:

ADO.Net et bases de données

sous Visual basic.Net

ADO.Net

• ADO (ActiveX Data Object) est une bibliothèque

logicielle de Microsoft fournissant une interface d'accès

aux données dans l'environnement Windows.

• ADO permet aux programmes clients d'accéder aux

données, et de les manipuler, dans un fichier ou un

serveur de base de données.

• ADO.Net est la nouvelle bibliothèque logicielle d’accès

aux données fournie en standard dans le Framework

.Net.

• C’est un ensemble de classes, de structures, de types

gérant l’accès à des sources de données.

ADO.net

• L‘accès aux BDs nécessite le chargement des fournisseurs de

données (providers)

• Un fournisseur de données : assure la communication avec

un type spécifique de base de données

• 4 fournisseurs de données (offerts par défaut) dans le

Framework.NET :

– Le fournisseur pour SQL Server. (SQL Server 7 et +) ;

imports System.Data.SqlClient

– Le fournisseur pour OLE DB. (SGBD n‘offrant pas un fournisseur

spécifique mais un pilote OLEDB comme Access) ;

imports System.Data.OleDb

– Le fournisseur pour ODBC. (même que OLEDB) ;

imports System.Data.Odbc

– Le fournisseur pour Oracle. (SGBD Oracle ) ;

imports System.Data.OracleClient

Les objets ADO.Net

• Les fournisseurs de données offrent 4 objets de base :

1) L‘objet Connection : permet d’établir une connexion

Advertisement

avec le serveur de base de données.

2) L‘objet Command : permet de demander l’exécution

d’une instruction ou d’un ensemble d’instructions SQL.

3) L‘objet DataReader : permet un accès en lecture seule

des données.

4) L‘objet DataAdapter : utilisé pour assurer le transfert

des données (l‘objet DataSet) et mettre à jour la BD, en

fonction des modifications effectuées localement dans

le DataSet.

Modes de fonctionnement dans

ADO.Net

• ADO.Net offre 2 modes de fonctionnement:

1) Le mode connecté :

• L‘application ou l‘utilisateur est en connexion

permanente avec la source de données.

• La connexion est réalisée au début de l’application puis

coupée à sa fermeture.

• Plus facile de contrôler quel utilisateur travaille sur les

données.

• le DataReader est en lecture seule, les données lues

dans la BD sont accessibles dans le DataReader.

• Les données sont à jour.

 Mode très utile pour les application temps réel.

Modes de fonctionnement dans ADO.Net

2) Le mode non connecté :

• Pas de connexion permanente avec la source de données:

1. connexion établie 2. données extraites 3. connexion coupée.

• L’utilisateur travaille avec les données et la connexion est à

nouveau établie pour des mises à jour de la source de données

ou pour extraire d’autres données.

le DataSet peut lire et écrire des données dans la BD (Il faut un

DataAdapter en plus de la connexion).

L‘objet Command permet :

a- D'envoyer des ordres (en SQL) à la BD

Advertisement

pour la modifier.

b- D'envoyer une requête SELECT afin

de remplir le DataSet avec le résultat

de la requête

Inconvénients : Les données ne sont pas à jour et risque de

conflits lors des MAJ.

Le mode connecté avec le

Provider OLEDB (ACCESS)

Le mode connecté

• Le mode connecté : lire rapidement des enregistrements.

• Les étapes nécessaires :

1. Imports System.Data

2. Imports System.Data.OleDb

3. Créer un objet Connection (OleDbConnection)

4. Créer un objet Command (OleDbCommand)

5. Affecter à la propriété commandText de l‘objet

Command la requête SQL (Select) : chaine de caractères.

6. Ouvrir la connexion

7. Créer un objet DataReader (OleDbDataReader)

objCmd.ExecuteReader()  on exécute la propriété

ExecuteReader pour créer l'objet DataReader

8. Parcourir l‘objet de type OleDbDataReader (avec une

boucle) et utiliser la méthode Read() pour lire les

enregistrements récupérés.

9. Fermer la connexion.

Exemple

• BD: Achat (NWIND.mdb)

• 8 tables: Fournisseurs, Produits, Catégories, Détails

Commandes, Commandes, Employés, Clients,

Messagers

Exemple 1 : récupérer les

Advertisement

contacts des clients

importer les

NameSpaces

Pour la base Access le

provider est OLEDB Jet 4

Exemple 1 : récupérer les

contacts des clients

Read avance la lecture des données à

l'enregistrement suivant , il retourne True s'il

y a encore des enregistrements et False

quand il est en fin de fichier; cela est utilisé

pour sortir de la boucle Do Loop.

Exemple 1 (exécution)

Autres méthodes et propriétés utiles

Classe DataReader :

• dr1.getOrdinal(nom_champ): donne le num

du champ nom_champ

• dr1.getName(i) : retourne le nom du champ

n° i

• dr1.HasRows : (False si pas d‘enregistrements

retournés, True sinon)

• dr1.fieldCount : retourne le nombre de

champs

Autres méthodes et propriétés utiles

Classe command

• cmd1.executeScalar( ) : permet de récupérer le

résultat d'une requête SQL qui contient une

instruction COUNT, AVG, MIN, MAX, SUM

Autres méthodes et propriétés utiles

Classe command

• (Prop.) cmd1.commandType=

commandType.text|.storedProcedure|.tableDirect

 indique comment doit être traité la commande

CommandText

Advertisement

• .text : cmd va exécuter une requête SQL

(cmd1.commandText=une requête SQL)

• .storedProcedure : cmd va exécuter une procédure

stockée (cmd1.CommandText="nom_proc")

• .tableDirect : cmd va retourner toutes les lignes d‘une

table (cmd1.commandText="nom_table")

Exemple

• Afficher le nombre des clients et remplir une

liste avec les pays de tous les clients

Retourne toutes

les lignes de la

table « Clients »

Cas d‘une BD SQL Server (exple)

Requêtes paramétrées

Requêtes paramétrées

Manipuler directement la base

Modification de données

• La modification des données dans une BD

s’effectue par les instructions SQL (INSERT,

UPDATE, DELETE)

• Ces ins° ne retournent aucun résultat

Modification de données

• Etapes:

1. Créer un objet OleDbCommand basé sur une

requête SQL (INSERT, UPDATE ou DELETE)

2. Demander l’exécution de cette commande par

la méthode ExecuteNonQuery()

 Cette méthode retourne le nombre

d’enregistrements affectés par l’exécution de

l’instruction SQL contenue dans le

OleDbCommand

Exemple