Vous êtes sur la page 1sur 8

ADO.

NET
1) Généralités
• Pour avoir accès à partir de C# aux bases de données il faut utiliser ADO.NET.
• ADO veut dire Activex Data Objects .
• C'est la couche d'accès aux bases de données, le SGBD (Système de Gestion
de Base de Données) de C#.
• Il est indépendant de la base de donnée: alors que initialement chaque
type de gestionnaire de base de données avait ses instructions, sa manière
de fonctionner, ADO.NET à un langage unique pour ouvrir, interroger,
modifier une base de données quelle que soit la base de données.

BD

Application C#
ADO
2) Les Managed Providers
• Pour avoir accès aux données il faut charger les DRIVERS (ou providers).
Comme d'habitude, il faut:
- Charger les références des drivers (les Dll)
- Importer les espaces de nom.

- OLE DB Managed Provider est fourni dans 'System'; après avoir


importé le NameSpace System.Data.OLEDB, on peut travailler sur
des bases Access par exemple.
- SQL Server Managed Provider est fourni dans 'System'; après
avoir importé le NameSpace System.Data.SqlClient, on peut
travailler sur des bases Sql Server.

2) Les Objets ADO.NET :


Il faut disposer d'un objet Connexion pour avoir accès à la base de
données, on met dans la propriété ConnectionString les paramètres
de la base de données (nom de la base de données, chemin, mot de passe..).
Avec la méthode Open et Close, on ouvre et on ferme la base.
Exemple :

using System.Data.SqlClient ;
SqlConnection con = New SqlConnection("Data Source = Nom_serveur ; Integrated
Security =True; Initial Catalog =TDI");
▪ Pour ouvrir la connexion : con.open();
▪ Pour fermer la connexion : con.close();

3) L’objet DataReader:
- Avec un objet DataReader on extrait les données en lecture seule: une
requête SQL (sur un objet command) charge le DataReader. c'est rapide; on
peut lire uniquement les données et aller à l'enregistrement suivant,il n'y a pas
possibilité d'écrire dans la base. En contrepartie de sa rapidité il monopolise la
connexion. Il travaille en mode connecté. Pour gérer un DataReader on a besoin
d'un objet Command.
- enfin on parcourt les enregistrements avec la méthode Read.
4) L’objet DataSet:
 Avec un objet DataSet on manipule les données: une requête SQL (sur un
objet Command) charge le DataSet avec des enregistrements ou des
champs, on travaille sur les lignes et colonnes du DataSet en local, en mode
déconnecté(une fois que le DataSet est chargé, la connexion à la base de
données est libérée). Pour alimenter un DataSet on a besoin d'un objet
DataAdapter qui fait l'intermédiaire entre la BD et le DataSet.

 Le DataSet a la structure d'une base de données mais en local; il contient:


Des DataTable qui contiennent des DataRow et des DataColumn.
Une requête SQL charge le DataSet, on travaille sur les lignes et colonnes du
DataSet en local ( sur des enregistrements ou des champs), en mode
déconnecté (une fois que le DataSet est chargé, la connexion à la base de
données peut être libérée).
• Résumons les différents objets nécessaires pour travailler sur une BD:

Noter bien le sens des flèches:


• le DataReader est en lecture seule, les données lues dans la BD sont
accessibles dans le DataReader.
• le DataSet peut lire et écrire des données dans la BD, il faut un
DataAdapter en plus de la connexion.
• l'objet Command peut modifier la BD.
Ce schéma souligne aussi les objets intermédiaires nécessaires:
• un objet connexion dans tous les cas,
• un objet Command pour le DataReader,
• un objet DataAdapter plus un objet Command pour le DataSet .

➢ Pour mettre à jour la base après modification du DataSet ou de la Grid il


faut un objet CommandBuilder
5) L’objet Command:

Command permet de définir la commande à exécuter: SELECT , UPDATE, INSERT,


DELETE. en utilisant le membre CommandText .
(Seul SELECT retourne des données)

• ExecuteReader exécute le code SQL de CommandText et retourne un


DataReader.

• ExecuteScalar fait de même mais retourne la première colonne de la première


ligne.

• ExecuteNonQuery exécute le code SQL de CommandText (généralement une


mise à jour par UPDATE, INSERT, DELETE ou un ajout de table) sans retourner de
données.
MERCI POUR VOTRE
ATTENTION

Vous aimerez peut-être aussi