Présentation
ADO.NET est le terme générique désignant l’ensemble des modules dédiés aux bases de données sur la plate‑forme .NET.
Il permet d’interagir avec les bases de données pour réaliser les opérations de base que sont la création, la lecture, la mise à jour et la suppression. On peut également exécuter des instructions SQL, appeler des fonctions SQL et lancer des procédures stockées.
La grande majorité des systèmes métiers importants dépendent des bases de données. Lorsque vous avez besoin de conserver des données de manière persistante et de bénéficier de requêtes performantes, vous devez recourir à une base de données.
ADO.NET propose en son cœur un ensemble d’objets qui encapsulent les méthodes dédiées aux opérations sur les bases de données :
- Connection : établit une connexion vers la base de données
- Command : exécute les commandes liées au SQL
- DataSet : ensemble de données en mémoire, abstraction de la base de données. Manipuler un DataSet revient à utiliser une base de données hors‑ligne. Il contient des DataTable (tables de données) et des DataRow (enregistrements individuels d’une table).
- DataReader : lecteur de données en lecture seule, à défilement avant
- DataAdapter : adaptateur de données
Maîtriser ADO.NET est indispensable pour concevoir des systèmes métiers complets. Les sites web et autres applications utilisent très souvent des bases de données, il est donc recommandé de bien l’étudier.
Les frameworks ORM comme EF, iBatis, NHibernate ou Linq to Entities reposent tous sur ADO.NET en arrière‑plan. Vous pouvez aussi développer votre propre framework ORM en vous basant sur ADO.NET.
Connexion à la base de données
L’objet Connection crée le lien entre votre programme et la base de données, c’est le point d’entrée de toutes les opérations sur la base.
.NET met à disposition la classe SqlConnection pour gérer les connexions aux bases de données. Elle se trouve dans l’espace de noms System.Data.SqlClient et appartient à l’assembly System.Data.dll.
La plupart des types destinés aux échanges avec la base de données sont encapsulés dans cette bibliothèque DLL.
Avant d’ouvrir une connexion, vous devez préparer une chaîne de connexion à la base de données. Cette chaîne est transmise lors de l’instanciation de l’objet SqlConnection.
SqlConnection conn = new SqlConnection(connectionString);Langage du code : JavaScript (javascript)
Une chaîne de connexion est simplement une chaîne de caractères stockée dans une variable de type string.
Exemples de chaînes de connexion pour deux modes d’authentification
- Connexion avec compte SA (authentification SQL Server)
"Data Source=.;Initial Catalog=NomBaseDonnees;User ID=sa;pwd=MotDePasse;"Langage du code : JSON / JSON avec commentaires (json)
- Connexion avec authentification Windows
Data Source=.;Initial Catalog=NomBaseDonnees;Integrated Security=TrueLangage du code : PHP (php)
Une chaîne de connexion regroupe plusieurs paramètres de configuration séparés par des points‑virgules anglais, sous la forme clé=valeur.
Détail des paramètres :
Data Source: adresse du serveur de base de données. Pour une base locale, utilisez.,localhostou127.0.0.1; pour un serveur distant, indiquez son adresse IP ou son nom de domaine.Initial Catalog: nom de la base de données cibleUser ID: compte de connexion à la base de donnéespwd: mot de passe de connexion à la base de données
Remarque :
User IDetpwdne sont pas obligatoires. En mode authentification Windows, renseignezIntegrated Security=Truepour activer la sécurité intégrée ; vous n’avez alors pas besoin de fournir identifiant et mot de passe.
Se connecter à une base de données en C#
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=123321;";
// Instanciation de l’objet de connexion dans un bloc using : les ressources sont libérées automatiquement à la fin du bloc, pas besoin d’appeler Close() manuellement
using (SqlConnection conn = new SqlConnection(connectionString))
{
// Ouvrir la connexion vers la base de données
conn.Open();
// Placez ici votre code d’accès à la base de données
}
}Langage du code : JavaScript (javascript)
Observations
conn.Open(): ouvre la connexion à la base de données. Cette méthode doit être appelée pour établir réellement la connexion réseau.- Atout de la syntaxe
using: quand l’exécution sort du bloc using, les ressources sont libérées et la connexion se ferme automatiquement, ce qui évite les fuites de connexions. - Si vous n’utilisez pas using, vous devez appeler manuellement
conn.Close()pour fermer la connexion une fois le travail terminé.
Autres usages courants
//conn.Open(); // Ouvrir la connexion
//conn.Close(); // Fermer la connexion manuellement
//conn.ConnectionString = connectionString; // Affecter dynamiquement la chaîne de connexion
//conn.ConnectionString = ""; // Effacer la chaîne de connexionLangage du code : JSON / JSON avec commentaires (json)
Présentation et connexions