Exercices ADO.NET

Exercice 3 ADO.NET Corrigé S1

Insertion de données dans une table

Objectif : Ajouter de nouvelles données dans une table.

Instructions :

  • Créez une application console qui permet à l'utilisateur d'entrer les informations d'un nouvel employé (par exemple, Nom, Poste, Salaire).
  • Insérez ces informations dans une table Employees de la base de données SQL Server.
  • Affichez un message indiquant que l'insertion est réussie.

Consigne : Utilisez SqlCommand avec une requête SQL INSERT INTO.

É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 la directive using pour inclure les bibliothèques ADO.NET nécessaires.

using System;
using System.Data.SqlClient;

Étape 3 : Écrire le code pour insérer 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 insérer des données :

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 des informations à l'utilisateur
        Console.Write("Entrez le nom de l'employé : ");
        string name = Console.ReadLine();
        
        Console.Write("Entrez le poste de l'employé : ");
        string position = Console.ReadLine();
        
        Console.Write("Entrez le salaire de l'employé : ");
        decimal salary;
        while (!decimal.TryParse(Console.ReadLine(), out salary))
        {
            Console.Write("Veuillez entrer un salaire valide : ");
        }
        
        // Requête SQL pour insérer les données
        string query = "INSERT INTO Employees (Name, Position, Salary) VALUES (@Name, @Position, @Salary)";

        // Utilisation de SqlConnection et SqlCommand pour insérer 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("@Name", name);
            command.Parameters.AddWithValue("@Position", position);
            command.Parameters.AddWithValue("@Salary", salary);

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

                // Affichage du message de succès
                if (rowsAffected > 0)
                {
                    Console.WriteLine("Insertion réussie !");
                }
                else
                {
                    Console.WriteLine("Aucune donnée insérée.");
                }
            }
            catch (SqlException ex)
            {
                // Gestion des erreurs de connexion ou d'insertion
                Console.WriteLine("Erreur lors de l'insertion 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'informations à l'utilisateur : Le programme demande à l'utilisateur d'entrer le nom, le poste, et le salaire de l'employé.

  3. decimal.TryParse : Utilisé pour valider que l'entrée de l'utilisateur pour le salaire est un nombre décimal valide.

  4. SqlCommand : La classe SqlCommand est utilisée pour exécuter la requête SQL d'insertion.

  5. Paramètres de la requête : Les paramètres (@Name, @Position, @Salary) 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 d'insertion).

  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 :

  • Les données fournies par l'utilisateur seront insérées dans la table Employees si la connexion et l'insertion sont réussies.
  • Un message de succès sera affiché si l'insertion est réussie.
  • Un message d'erreur sera affiché en cas de problème lors de l'insertion.

Remarque :

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

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.