Exercice 3 ADO.NET Corrigé S1
É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 :
-
connectionString
: La chaîne de connexion utilisée pour se connecter à votre base de données SQL Server. RemplacezNomDeVotreBaseDeDonnées
par le nom de votre base de données. -
Demande d'informations à l'utilisateur : Le programme demande à l'utilisateur d'entrer le nom, le poste, et le salaire de l'employé.
-
decimal.TryParse
: Utilisé pour valider que l'entrée de l'utilisateur pour le salaire est un nombre décimal valide. -
SqlCommand
: La classeSqlCommand
est utilisée pour exécuter la requête SQL d'insertion. -
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. -
ExecuteNonQuery
: Méthode deSqlCommand
utilisée pour exécuter des requêtes SQL qui ne retournent pas de données (comme une requête d'insertion). -
Gestion des exceptions avec
try-catch
: Le bloctry-catch
gère les erreurs qui peuvent survenir lors de l'exécution de la requête ou de la connexion. -
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 colonnesName
,Position
, etSalary
sont correctement définies.
Pas encore de commentaires.
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.