Insérer, mettre à jour, supprimer : Connexion à une base de données ASP.NET
⚡ Résumé intelligent
ASP.NET se connecte à des bases de données telles que SQL Server et Oracle via ADO.NET, en utilisant les classes SqlConnection, SqlCommand, SqlDataReader et SqlDataAdapter pour ouvrir une connexion et exécuter des opérations de sélection, d'insertion, de mise à jour et de suppression sur les enregistrements stockés.
L'accès aux données d'une base de données est un aspect fondamental de tout langage de programmation. Il est indispensable à tout langage de programmation de pouvoir interagir avec des bases de données.
ASP.NET peut fonctionner avec différents types de bases de données. Il est compatible avec les bases de données les plus courantes, telles que : Oracle et Microsoft SQL Server.
Il a également la capacité de fonctionner avec de nouvelles formes de bases de données telles que MongoDB et MySQL.
Principes fondamentaux de la connectivité des bases de données
ASP.NET peut fonctionner avec la majorité des bases de données, les plus courantes étant Oracle et Microsoft SQL Server. Mais avec chaque base de données, la logique derrière l’utilisation de chacune d’elles est essentiellement la même.
Dans nos exemples, nous examinerons le travail avec le Microsoft SQL Server comme notre base de données. À des fins d'apprentissage, on peut télécharger et utiliser le Microsoft SQL Server Édition Express. Il s'agit d'un logiciel de base de données gratuit fourni par Microsoft.
Lorsqu'on travaille avec des bases de données, les concepts suivants sont communs à toutes les bases de données :
- La connexion – Pour travailler avec les données d’une base de données, la première étape évidente est la connexion. La connexion à une base de données comprend normalement les paramètres mentionnés ci-dessous.
- Nom de la base de données ou source de données – Le premier paramètre important est le nom de la base de données. Chaque connexion ne peut fonctionner qu'avec une seule base de données à la fois.
- Titres de compétences – L’élément suivant important est le nom d’utilisateur et le mot de passe. Ils servent à établir une connexion à la base de données.
- Paramètres facultatifs Vous pouvez spécifier des paramètres optionnels concernant la manière dont .NET doit gérer la connexion à la base de données. Par exemple, vous pouvez définir la durée de vie de la connexion.
- Sélection de données dans la base de données Une fois la connexion établie, les données sont extraites de la base de données. ASP.NET permet d'exécuter la commande SQL SELECT sur cette base. Cette requête SQL permet d'extraire des données d'une table spécifique.
- Insérer des données dans la base de données ASP.NET est utilisé pour insérer des enregistrements dans la base de données. Les valeurs de chaque ligne à insérer sont spécifiées dans ASP.NET.
- Mise à jour des données dans la base de données ASP.NET permet également de mettre à jour les enregistrements existants dans la base de données. De nouvelles valeurs peuvent être spécifiées dans ASP.NET pour chaque ligne à mettre à jour.
- Supprimer des données d'une base de données ASP.NET permet également de supprimer des enregistrements de la base de données. Le code est conçu pour supprimer une ligne spécifique.
Maintenant que nous avons vu la partie théorique de chaque opération, voyons comment effectuer des opérations de base de données en ASP.NET.
Connexions à la base de données ASP.NET
Examinons maintenant le code nécessaire pour établir une connexion à une base de données. Dans notre exemple, nous nous connecterons à la base de données Demodb. Les identifiants de connexion sont fournis ci-dessous :
- Nom d'utilisateur – sa
- Mot de passe – démo123
Travaillons maintenant avec notre application web actuelle, créée dans les sections précédentes.
- Commencez à y ajouter des opérations de base de données.
- Notre exemple illustre l'établissement d'une connexion simple à la base de données Demodb, lors du premier lancement de la page.
- Une fois la connexion établie, un message sera envoyé à l'utilisateur. Le message indiquera que la connexion a été établie.
Pour y parvenir, suivons les étapes mentionnées ci-dessous.
Étape 1) Commençons par vérifier que votre application web (DemoApplication) est ouverte dans Visual Studio. Double- Cliquez sur le fichier demo.aspx.cs pour saisir le code de connexion à la base de données.
Étape 2) Ajoutez le code ci-dessous qui sera utilisé pour établir une connexion à la base de données.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString; SqlConnection cnn; connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123"; cnn = new SqlConnection(connectionString); cnn.Open(); Response.Write("Connection Made"); cnn.Close(); } } }
Code Explication:-
- La première étape consiste à créer des variables. Elles serviront à créer la chaîne de connexion et à établir la connexion à la base de données SQL Server.
- L'étape suivante consiste à créer la chaîne de connexion. Celle-ci se compose des éléments suivants :
- Source de données – Il s'agit du nom du serveur sur lequel réside la base de données. Dans notre cas, elle réside sur une machine nommée WIN-50GP30FGO75.
- Le catalogue initial sert à spécifier le nom de la base de données.
- L'identifiant et le mot de passe sont les informations d'identification nécessaires pour se connecter à la base de données.
- Ensuite, nous assignons la chaîne de connexion à la variable cnn.
- La variable cnn est de type SqlConnection. Ceci est utilisé pour établir une connexion à la base de données.
- SqlConnection est une classe d'ASP.NET utilisée pour créer une connexion à une base de données.
- Pour utiliser cette classe, vous devez d'abord créer un objet de cette classe. Nous créons donc ici une variable appelée cnn de type SqlConnection.
- Ensuite, nous utilisons la méthode Open de la variable cnn pour établir une connexion à la base de données. Nous affichons un message à l'utilisateur confirmant l'établissement de la connexion grâce à la méthode Response.Write. Enfin, nous fermons la connexion à la base de données.
Lorsque le code ci-dessus est défini et que le projet est exécuté à l'aide de Visual StudioVous obtiendrez le résultat ci-dessous. Une fois le formulaire affiché, cliquez sur le bouton « Se connecter ».
Production:-
Le message de sortie affiché dans le navigateur indiquera que la connexion à la base de données est établie.
Base de données de lecture ASP.NET à l'aide de SqlDataReader
Pour illustrer les données auxquelles on accède via ASP.NET, supposons que notre base de données contienne les éléments suivants.
- Une table nommée demotb. Cette table servira à stocker l'identifiant et le nom des différents tutoriels.
- Le tableau comportera deux colonnes : l’une appelée TutorialID et l’autre TutorialName.
- Pour le moment, le tableau comportera deux lignes comme indiqué ci-dessous.
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Modifions le code afin de pouvoir interroger ces données et afficher les informations directement sur la page web. Notez que le code saisi fait suite à celui écrit pour le module de connexion aux données.
Étape 1) Divisons le code en deux parties :
- La première étape consistera à construire notre requête SELECT. Elle servira à lire les données de la base de données.
- Nous exécuterons ensuite la requête SELECT sur la base de données. Cela permettra de récupérer toutes les lignes de la table.
Code Explication:-
- La première étape consiste à créer les variables suivantes :
- SqlCommand – La classe SqlCommand est définie en C#. Elle permet d'effectuer des opérations de lecture et d'écriture dans la base de données.
- L'objet DataReader est utilisé pour obtenir toutes les données spécifiées par la requête SQL. On peut alors lire toutes les lignes du tableau une par une à l’aide du lecteur de données.
- Nous définissons ensuite deux variables de type chaîne de caractères. La première, `sql`, contiendra notre commande SQL. La seconde, `Output`, contiendra toutes les valeurs de la table.
- L'étape suivante consiste à définir la requête SQL. Dans notre cas, il s'agit de « SELECT TutorialID, TutorialName FROM demotb ». Cette requête récupérera toutes les lignes de la table demotb.
- Ensuite, nous créons l'objet de commande qui est utilisé pour exécuter l'instruction SQL sur la base de données. Dans la commande SQL, vous devez transmettre l'objet de connexion et la chaîne SQL.
- Ensuite, nous exécutons la commande de lecture de données, qui récupérera toutes les lignes de la table demotb.
- Maintenant que nous avons toutes les lignes du tableau, il nous faut un mécanisme pour accéder à ces lignes une par une.
- Pour cela, nous utilisons l'instruction while pour accéder aux lignes du lecteur de données une à une.
- Nous utilisons ensuite la méthode GetValue pour obtenir la valeur de TutorialID et TutorialName.
Étape 2) Dans la dernière étape, nous affichons le résultat à l'utilisateur. Ensuite, nous fermons tous les objets liés à l'opération de base de données.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Code Explication:-
- Nous poursuivons l'exécution de notre code en affichant la valeur de la variable Output. Ceci est réalisé à l'aide de la méthode Response.Write.
- Nous fermons enfin tous les objets liés à notre opération de base de données. N'oubliez pas, c'est toujours une bonne pratique.
Lorsque le code ci-dessus est configuré et que le projet est exécuté à l'aide de Visual Studio, vous obtiendrez le résultat ci-dessous.
Production:-
À partir du résultat, vous pouvez clairement voir que le programme a pu obtenir les valeurs de la base de données. Les données sont ensuite affichées dans le navigateur pour l'utilisateur.
Insérer un enregistrement de base de données à l'aide de InsertCommand
Tout comme pour l'accès aux données, ASP.NET permet également d'insérer des enregistrements dans la base de données. Prenons la même structure de table que celle utilisée pour l'insertion des enregistrements.
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Modifions le code de notre formulaire afin de pouvoir insérer la ligne suivante dans le tableau :
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 3 | VB.Net |
Étape 1) Dans un premier temps, ajoutons le code suivant à notre programme. L'extrait de code ci-dessous servira à insérer un enregistrement dans notre base de données.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Insert into demotb(TutorialID,TutorialName) values(3,'VB.Net')"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explication:-
- La première étape consiste à créer les variables suivantes :
- SqlCommand – Ce type de données permet de définir des objets qui effectuent des opérations SQL sur une base de données. Cet objet contiendra la commande SQL qui sera exécutée sur notre base de données SQL Server.
- L'objet DataAdapter est utilisé pour exécuter des commandes SQL d'insertion, de suppression et de mise à jour.
- Nous définissons ensuite une variable de type chaîne de caractères, nommée sql, pour stocker notre chaîne de commande SQL.
- L'étape suivante consiste à définir la requête SQL. Dans notre cas, il s'agit d'une requête INSERT. Celle-ci insérera l'enregistrement TutorialID=3 et TutorialName=VB.Net.
- Ensuite, nous créons l'objet de commande qui est utilisé pour exécuter l'instruction SQL sur la base de données. Dans la commande SQL, vous devez transmettre l'objet de connexion et la chaîne SQL.
- Dans notre commande d'adaptateur de données :
- Associez la commande insert SQL à l’adaptateur.
- Ensuite, exécutez la méthode ExecuteNonQuery. Celle-ci permet d'exécuter l'instruction INSERT sur notre base de données.
- La méthode ExecuteNonQuery est utilisée dans C# pour émettre des instructions DML (opération d'insertion, de suppression et de mise à jour) sur la base de données.
- Nous fermons enfin tous les objets liés à notre opération de base de données. N'oubliez pas, c'est toujours une bonne pratique.
Étape 2) Dans un second temps, ajoutons le même code que dans la section relative à l'accès aux données. Ceci permettra d'afficher les données récentes du tableau dans le navigateur. Pour ce faire, nous ajouterons le code ci-dessous au fichier demo.aspx.cs.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Lorsque le code ci-dessus est configuré et que le projet est exécuté dans Visual Studio, vous obtiendrez le résultat suivant.
Production:-
Dans la fenêtre du navigateur, vous verrez que la ligne a été insérée avec succès dans la base de données.
Mettre à jour l'enregistrement de la base de données à l'aide de UpdateCommand
ASP.NET permet de mettre à jour les enregistrements existants dans une base de données. Reprenons la structure de table utilisée dans l'exemple précédent pour insérer des enregistrements.
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Modifions le code de notre formulaire afin de pouvoir mettre à jour la ligne suivante. L'ancienne valeur de cette ligne est TutorialID = 3 et TutorialName = VB.Net ; nous allons la remplacer par « VB.Net Complete », tandis que la valeur de TutorialID restera inchangée.
Ancienne rangée
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 3 | VB.Net |
Nouvelle ligne
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 3 | VB.Net complet |
Étape 1) Dans un premier temps, ajoutons le code suivant à notre programme. L'extrait de code ci-dessous servira à mettre à jour un enregistrement existant dans notre base de données.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Update demotb set TutorialName='VB.Net Complete' where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explication:-
- La première étape consiste à créer les variables suivantes :
- SqlCommand – Ce type de données permet de définir des objets pour effectuer des opérations SQL sur une base de données. Cet objet contiendra la commande SQL qui sera exécutée sur notre base de données SQL Server.
- L'objet DataAdapter est utilisé pour exécuter des commandes SQL d'insertion, de suppression et de mise à jour.
- Nous définissons ensuite une variable de type chaîne de caractères, nommée sql, pour stocker notre chaîne de commande SQL.
- L'étape suivante consiste à définir la requête SQL. Dans notre cas, il s'agit d'une requête UPDATE. Celle-ci mettra à jour la variable TutorialName à « VB.Net Complete ». La variable TutorialID restera inchangée et sa valeur sera 3.
- Ensuite, nous créons l'objet de commande. Celui-ci sert à exécuter la requête SQL sur la base de données. Dans la commande SQL, vous transmettez l'objet de connexion et la chaîne de caractères SQL.
- Dans notre commande d'adaptateur de données, nous associons la commande SQL à notre adaptateur. Nous appelons ensuite la méthode ExecuteNonQuery, qui permet d'exécuter l'instruction de mise à jour sur notre base de données.
- Nous fermons enfin tous les objets liés à notre opération de base de données. N'oubliez pas, c'est toujours une bonne pratique.
Étape 2) Dans un second temps, ajoutons le même code que dans la section relative à l'accès aux données. Ceci permettra d'afficher les données récentes du tableau dans le navigateur. Pour ce faire, nous ajouterons le code ci-dessous.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Lorsque le code ci-dessus est configuré et que le projet est exécuté à l'aide de Visual Studio, vous obtiendrez le résultat ci-dessous.
Production:-
Dans la fenêtre du navigateur, vous verrez que la ligne a bien été mise à jour dans la base de données.
Supprimer l'enregistrement de la base de données à l'aide de DeleteCommand
ASP.NET permet de supprimer des enregistrements existants d'une base de données. Reprenons la structure de table utilisée dans l'exemple précédent pour supprimer des enregistrements.
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net complet |
Modifions le code de notre formulaire afin de pouvoir supprimer la ligne suivante :
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 3 | VB.Net complet |
Étape 1) Dans un premier temps, ajoutons le code suivant à notre programme. L'extrait de code ci-dessous servira à supprimer un enregistrement existant dans notre base de données.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Delete demotb where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.DeleteCommand = new SqlCommand(sql, cnn); adapter.DeleteCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explication:-
- La principale différence dans ce code réside dans l'exécution de l'instruction SQL DELETE. Cette instruction permet de supprimer la ligne de la table demotb où TutorialID a la valeur 3.
- Dans notre commande d'adaptateur de données, nous associons la commande SQL DELETE à notre adaptateur. Nous appelons également la méthode ExecuteNonQuery, qui permet d'exécuter l'instruction DELETE sur notre base de données.
Étape 2) Dans un second temps, ajoutons le même code que dans la section relative à l'accès aux données. Ceci permettra d'afficher les données récentes du tableau dans le navigateur. Pour ce faire, nous ajouterons le code ci-dessous.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Lorsque le code ci-dessus est configuré et que le projet est exécuté à l'aide de Visual Studio, vous obtiendrez le résultat ci-dessous.
Production:-
Connexion des contrôles ASP.NET aux données
Nous avons vu comment utiliser les commandes ASP.NET telles que SqlCommand et SqlDataReader pour extraire des données d'une base de données. Nous avons également vu comment lire chaque ligne du tableau et l'afficher sur une page web.
Il existe des méthodes permettant de lier directement des contrôles à différents champs du tableau. Actuellement, seuls les contrôles suivants peuvent être liés à une application ASP.NET :
- VérifiezBoxListe
- Liste des boutons radio
- La liste déroulante
- ListeBox
Voyons donc un exemple d'utilisation de la liaison de contrôle dans ASP.NET. Nous utiliserons ici une liste.Box Par exemple, supposons que nous ayons les données suivantes dans notre base de données.
| ID du didacticiel | Nom du didacticiel |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net complet |
Utilisons la listeBox Voyez comment le système récupère automatiquement les données de notre table demotb. Suivez les étapes ci-dessous pour y parvenir.
Étape 1) Créez le formulaire web de base. Dans la boîte à outils de Visual Studio, glissez-déposez deux composants : une étiquette et une liste.BoxEnsuite, effectuez les sous-étapes suivantes :
- Attribuez à la valeur textuelle de la première étiquette la valeur TutorialID.
- Attribuez à la deuxième étiquette la valeur textuelle « TutorialName ».
Voici à quoi ressemblera le formulaire une fois les étapes mentionnées ci-dessus effectuées.
Étape 2) L'étape suivante consiste à commencer à connecter chaque liste.Box à la table de la base de données.
- Tout d'abord, cliquez sur la listeBox pour TutorialID. Cela fera apparaître une autre boîte de dialogue à côté du contrôle.
- Dans la boîte de dialogue, cliquez sur l'option « Choisir la source de données ».
Étape 3) Une boîte de dialogue s'affichera alors. Vous pourrez l'utiliser pour créer une nouvelle source de données. Cette source de données correspondra à une connexion à la base de données. Sélectionnez l'option « Nouvelle source de données ».
Étape 4) L'écran ci-dessous s'affichera après avoir choisi la nouvelle source de données à la dernière étape. Ici, nous devons mentionner le type de source de données que nous souhaitons créer.
- Choisissez l'option de base de données pour travailler avec une base de données SQL Server.
- Nous devons maintenant donner un nom à notre source de données. Ici, nous lui donnons le nom DemoDataSource.
- Enfin, nous cliquons sur le bouton OK pour passer à l'écran suivant.
Étape 5) Nous devons maintenant établir une connexion à notre base de données. Sur l'écran suivant, cliquez sur le bouton « Nouvelle connexion ».
Étape 6) Ensuite, vous devez ajouter les informations d'identification pour vous connecter à la base de données.
- Choisissez le nom du serveur sur lequel réside SQL Server.
- Saisissez l'identifiant et le mot de passe pour vous connecter à la base de données.
- Choisissez la base de données comme demotb.
- Cliquez sur le bouton OK.
Étape 7) Sur l'écran suivant, vous verrez le tableau demotb. Cliquez simplement sur le bouton Suivant pour accepter les paramètres par défaut.
Étape 8) Vous pourrez désormais tester la connexion sur l'écran suivant.
- Cliquez sur le bouton Tester la requête pour vérifier si vous pouvez obtenir les valeurs du tableau.
- Cliquez sur le bouton Terminer pour terminer l'assistant.
Étape 9) Sur l'écran final, vous pouvez maintenant cliquer sur le bouton OK. Cela liera la liste TutorialID.Box au nom du champ TutorialID dans la table demotb.
Étape 10) Il est maintenant temps de lier la liste TutorialNameBox au champ TutorialName.
- Tout d'abord, cliquez sur la liste des noms de tutorielsBox.
- Ensuite, choisissez une source de données dans la boîte de dialogue qui apparaît à côté de la liste.Box.
Étape 11) Vous verrez déjà le DemoDataSource lors du choix de la source de données dans l'écran suivant.
- Choisissez la source de données de démonstration.
- Cliquez sur le bouton OK.
Si toutes les étapes ci-dessus sont exécutées comme indiqué, vous obtiendrez le résultat mentionné ci-dessous.
Production:-
D'après le résultat, vous pouvez constater que la listeBoxes affiche respectivement l'ID du tutoriel et le nom du tutoriel.




























