Exercices ADO.NET

Exercice 4 ADO.NET Corrigé S1

Mise à jour d'un enregistrement dans une table

Objectif : Mettre à jour un enregistrement existant dans une table.

Instructions :

  • Créez une application console qui demande à l'utilisateur de saisir l'ID d'un employé.
  • Demandez à l'utilisateur de saisir un nouveau poste pour cet employé.
  • Mettez à jour cet enregistrement dans la base de données SQL Server.
  • Affichez un message confirmant la mise à jour.

Consigne : Utilisez une requête SQL UPDATE avec SqlCommand.

Étape 1 : Créez une application console

Ouvrez Visual Studio et créez un nouveau projet Console Application.

Étape 2 : Ajouter les namespaces nécessaires

Ajoutez les directives using pour inclure les bibliothèques ADO.NET nécessaires.

using System;
using System.Data.SqlClient;

Étape 3 : Écrire le code pour mettre à jour les données

Exemple de chaîne de connexion :

// Chaîne de connexion typique pour SQL Server local
string connectionString = "Data Source=localhost;Initial Catalog=NomDeVotreBaseDeDonnées;Integrated Security=True";

Code complet pour mettre à jour un enregistrement :

using System;
using System.Data.SqlClient;

class Program
{
    static void Main(string[] args)
    {
        // Chaîne de connexion à la base de données
        string connectionString = "Data Source=localhost;Initial Catalog=NomDeVotreBaseDeDonnées;Integrated Security=True";

        // Demande à l'utilisateur de saisir l'ID de l'employé
        Console.Write("Entrez l'ID de l'employé à mettre à jour : ");
        int employeeId;
        while (!int.TryParse(Console.ReadLine(), out employeeId))
        {
            Console.Write("Veuillez entrer un ID valide : ");
        }

        // Demande à l'utilisateur de saisir le nouveau poste
        Console.Write("Entrez le nouveau poste de l'employé : ");
        string newPosition = Console.ReadLine();

        // Requête SQL pour mettre à jour le poste de l'employé
        string query = "UPDATE Employees SET Position = @Position WHERE ID = @ID";

        // Utilisation de SqlConnection et SqlCommand pour mettre à jour les données
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(query, connection);

            // Ajout des paramètres à la requête
            command.Parameters.AddWithValue("@Position", newPosition);
            command.Parameters.AddWithValue("@ID", employeeId);

            try
            {
                // Ouverture de la connexion
                connection.Open();
                
                // Exécution de la requête
                int rowsAffected = command.ExecuteNonQuery();

                // Affichage du message de confirmation
                if (rowsAffected > 0)
                {
                    Console.WriteLine("Mise à jour réussie !");
                }
                else
                {
                    Console.WriteLine("Aucun enregistrement trouvé avec cet ID.");
                }
            }
            catch (SqlException ex)
            {
                // Gestion des erreurs de connexion ou de mise à jour
                Console.WriteLine("Erreur lors de la mise à jour des données : " + ex.Message);
            }
            finally
            {
                // Fermeture de la connexion si elle est ouverte
                if (connection.State == System.Data.ConnectionState.Open)
                {
                    connection.Close();
                    Console.WriteLine("Connexion fermée.");
                }
            }
        }

        // Pause pour visualiser la sortie dans la console
        Console.WriteLine("Appuyez sur une touche pour quitter...");
        Console.ReadKey();
    }
}

Explications :

  1. connectionString : La chaîne de connexion utilisée pour se connecter à votre base de données SQL Server. Remplacez NomDeVotreBaseDeDonnées par le nom de votre base de données.

  2. Demande d'ID et de poste : Le programme demande à l'utilisateur d'entrer l'ID de l'employé dont les informations doivent être mises à jour, ainsi que le nouveau poste.

  3. int.TryParse : Utilisé pour valider que l'entrée de l'utilisateur pour l'ID est un nombre entier valide.

  4. SqlCommand : La classe SqlCommand est utilisée pour exécuter la requête SQL de mise à jour.

  5. Paramètres de la requête : Les paramètres (@Position, @ID) sont utilisés pour éviter les injections SQL et insérer les valeurs dans la requête SQL.

  6. ExecuteNonQuery : Méthode de SqlCommand utilisée pour exécuter des requêtes SQL qui ne retournent pas de données (comme une requête de mise à jour).

  7. Gestion des exceptions avec try-catch : Le bloc try-catch gère les erreurs qui peuvent survenir lors de l'exécution de la requête ou de la connexion.

  8. connection.Close() : Ferme la connexion à la base de données après l'exécution de la requête.

Testez votre programme

Lorsque vous exécutez ce programme, voici ce qui peut se produire :

  • Si l'ID de l'employé est valide et que la mise à jour est réussie, un message de succès sera affiché.
  • Si l'ID ne correspond à aucun enregistrement, un message indiquant qu'aucun enregistrement n'a été trouvé sera affiché.
  • En cas de problème lors de la mise à jour (par exemple, si l'ID n'existe pas), un message d'erreur sera affiché.

Remarque :

  • Assurez-vous que la table Employees existe dans votre base de données et que les colonnes Position et ID sont correctement définies.

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.