0% ont trouvé ce document utile (0 vote)
26 vues20 pages

ADO.NET et SQL : Guide de Manipulation

Le document présente ADO.NET, une bibliothèque essentielle pour la manipulation des bases de données dans les applications web, en mettant l'accent sur les classes clés comme SqlConnection, SqlCommand et SqlDataReader. Il aborde également l'installation de Microsoft.Data.SqlClient via Nuget Manager et fournit des exemples pratiques pour l'exécution de requêtes SQL. Enfin, le document propose des exercices pratiques pour la gestion de catégories dans une base de données ASP.NET.

Transféré par

Sport tv
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues20 pages

ADO.NET et SQL : Guide de Manipulation

Le document présente ADO.NET, une bibliothèque essentielle pour la manipulation des bases de données dans les applications web, en mettant l'accent sur les classes clés comme SqlConnection, SqlCommand et SqlDataReader. Il aborde également l'installation de Microsoft.Data.SqlClient via Nuget Manager et fournit des exemples pratiques pour l'exécution de requêtes SQL. Enfin, le document propose des exercices pratiques pour la gestion de catégories dans une base de données ASP.NET.

Transféré par

Sport tv
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

ADO .

NET

Présenté par : MANI Mohammed Adil 1


Problématique

• La persistance est primordiale pour le bon


fonctionnement des applications web.

• La persistance peut être garantie à la base des


sessions, cookies ou JWT ( Voir cours State
Management ).

• Mais les bases de données permettent un


partage de données entre plusieurs utilisateurs.
Problématique

• Les base de données ne sont pas le seul moyen


pour persister et partager les données.

• Les fichiers textes peuvent être une solution


aussi.

• Mais la manipulation des bases de données est


plus simple en utilisant des requêtes SQL.
SGBDR et [Link]

• [Link] est la bibliothèque, la plus ancienne, la plus utilisée


actuellement en ce qui concerne la manipulation des SGBDR.

• C’est une bibliothèque composée de plusieurs classes permettant


d’assurer la communication avec la BD, notamment :

– SQLConnection : Pour ouvrir un canal de communication entre l’application


et la base de données.
– SQLCommand : Pour transporter une requêtes SQL en utilisant le canal de
connexion.
– SQLDataReader : Pour récupérer les données d’une requête select non-
scalaire.
SGBDR et [Link]

• Ces classes se trouvaient dans un package sous le nom de :


[Link]. Ce package a été remplacé à partir de la
version .NET 6.0 par [Link].

• Ce package n’est pas disponible par défaut dans les projets .NET,
nous devons le télécharger et intégrer ses fichiers .dll dans les
références de projet.

• Ceci peut être fait manuellement, ou automatiquement en


utilisant Nuget Manager.
SGBDR et [Link]

• Nuget Manager est un gestionnaire de package offert par Visual


Studio, permettant la recherche, le téléchargement et l’intégration
simple des bibliothèques.

• Vous pouvez utiliser la console, ou l’interface graphique.

• Pour lancer l’interface graphique : Clique droit sur le projet +


Gérer les packages nuget + Chercher : [Link] +
Télécharger.

• Pour lancer la console : Menu Visual Studio + Géstionnaire de


packages Nuget + Console de Gestionnaire de Packages + Lancer la
commande : dotnet add package [Link]
SGBDR et [Link]

Installation de package [Link] via Nuget Manager


SqlConnection

• SqlConnection est une classe permettant d’instancier un objet


qui permet de garantir une communication avec la Base de
données.

• Pour que l’objet puisse communiquer avec une base de


données, il a besoin des informations suivantes :
– Adresse IP du serveur : Dans notre cas, le serveur est local alors il
suffit de remplacer l’IP par un point ‘’ . ‘’
– Nom de base de données
– Login et mot de passe sinon une Authentification Windows.
– Présence d’encryptage : Ce paramètre est nouveau, pour demander
l’utilisateur de choisir entre communication Cryptée ou non Cryptée.
SqlConnection

SqlConnection avec authentification windows

• Le constructeur, demande comme paramètre une chaine de caractères qui


doit être écrite soigneusement. Vous devez respecter les mots clés, l’ordre
n’est pas important.
– Data source = Adresse IP de serveur
– Initial catalog = Nom de base de données
– Integrated security = Mode d’authentification windows.
– Encrypt = Valeur booléen pour activer ou désactiver l’encryptage.

SqlConnection avec Login et Password


SqlConnection – Open et Close

• Cet objet est composé essentiellement de 2 fonctions


principales : Open() et Close().

• Pour pouvoir envoyer une requête à un serveur SQL, vous


devez ouvrir la connexion.

• Une parmi les bonnes pratiques en utilisant ce Mode, est la


fermeture de la connexion une fois le requête envoyée.

Ouverture et fermeture de connexion


SqlConnection – Exceptions

• En manipulant cet objet, vous pouvez faire face à plusieurs


exceptions, les plus fréquentes sont :

– ‘Keyword not supported’ = Une erreur dans l’écriture des mots clés.

– 'A connection was successfully established with the


server, but then an error occurred during the login
process’ = Une erreur dans l’écriture de nom de la base de
données.

– 'A network-related or instance-specific error occurred


while establishing a connection to SQL Server’ = Une
erreur dans l’écriture du nom de serveur, si le nom est correcte
alors le serveur est arrêté, pour le démarrer : Services + Sql
Express + Démarer
SqlCommand

• SqlCommand est une classe permettant d’instancier un objet


qui permet d’exécuter une requêtes sous serveur de BD.

• Pour que l’objet puisse envoyer une requête correctement, il a


besoin de :
– Une requête correcte : C’est la partie critique
– L’objet de connexion : L’objet Conn discuté précédemment.

Déclaration d’un objet SQL commande en utilisant le constructeur d’initialisation

Déclaration d’un objet SQL commande en utilisant le constructeur par défaut


SqlCommand

• La déclaration ne lance aucune exécution.


• SqlCommand est composé principalement de 3 fonctions pour
exécuter la requête SQL passée :
– ExecuteNonQuery = Utilisée avec les requêtes d’action, Insert, Update et Delete
– ExecuteReader = Utilisée pour les requête Select non-scalaires
– ExecuteScalar = Utilisée pour les requêtes scalaires.

• Exemple de requêtes scalaires : Une requête avec 1 seule valeur


– select count(*) from produit.
– Select Max(id) from client.

• Exemple de requête non scalaires : Une requête avec plus d’une valeur :
– Select * from client
– Select libelle from produit
– Select Max(prix), Min(prix) from produit.
SqlCommand

• Exemple complet d’exécution d’une requête d’insertion:

Déclaration de SQLConnection et SqlCommand + Exécution de requête


• Exemple complet d’exécution d’une requête scalaire :

Déclaration de SQLConnection et SqlCommand + Exécution de requête


TP – Gestion de commandes

• Créer une nouvelle base de données.


• Créer une nouvelle table Category avec les champs :
– Id = int, primary key, identity (1,1)
– Libelle = varchar(50)

• Créer un nouveau projet [Link]


• Créer un nouveau contrôleur : CategoriesController
• Créer un ViewModel pour le formulaire d’ajout : CategorieVM.
• Ajouter 2 fonctions au contrôleur : Une pour afficher le formulaire, et une
pour la récupération.
• Ajouter une fonction au contrôleur, pour afficher le nombre de catégories.
• Bonnes pratiques :
– Pour respecter les principes de MVC, la requêtes SQL ne doivent pas être écrite dans le
contrôleur. Créer un classe Model : Categorie, et ajouter une fonction Add() à cette
classe puis modifier votre contrôleur.
SqlDataReader

• SQLDataReader est l’objet responsable de la lecture du


résulta d’une requête de sélection non-scalaire. Il permet
d’itérer sur le résulta grâce à la fonction Read().

• Vous pouvez utiliser la fonction .Read() pour lire le résultat de


la requête ligne par ligne. Read() retourne false si l’itération
est terminée.

• Vous pouvez aussi utiliser l’attribut Boolean .hasRows pour


vérifier si le DataReader est plein.

• Vous pouvez utiliser la fonction IsDBNull(index) pour vérifier


si la valeur récupérée est null.
SqlDataReader – Méthode 1

• Exemple de récupération de la liste des catégories depuis la


base de données avec remplissage de List.

Récupération de la liste des catégories


SqlDataReader – Méthode 2

Récupération de la liste des catégories


SqlDataReader – Bonnes Pratiques

Récupération de la liste des catégories – Utilisation de Using pour libération de mémoire


TP – Extension

• Ajouter une fonction au contrôleur pour afficher la liste de catégories.


• A côté de chaque catégorie, afficher 2 liens : Modifier et Supprimer.

• Ajouter une fonction Update pour afficher les informations ancienne dans
un formulaire.

• Ajouter une fonction Update pour appliquer la modification.

• Ajouter une fonction supprimer pour supprimer la catégorie.

• Ajouter un formulaire de recherche composé d’une zone de texte, puis


afficher les catégories qui contiennent la chaine saisie.

Vous aimerez peut-être aussi