IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

C# MySQL Connection (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

Introduction à l'intégration de MySQL dans C#

Connecter des applications C# à des bases de données MySQL permet aux développeurs d'exploiter la puissance d'une base de données relationnelle pour stocker, récupérer et gérer les données efficacement. Ce guide fournit un processus étape par étape pour intégrer MySQL avec des applications C# et montre comment générer des PDF à partir des données de votre base de données MySQL en utilisant la bibliothèque IronPDF.

Prérequis

Pour suivre ce guide, vous aurez besoin :

  • Visual Studio ou tout autre IDE C#
  • Une base de données MySQL (installée et en cours d'exécution)
  • La bibliothèque IronPDF (pour la génération de PDF)

Configuration de la base de données MySQL

Installation et configuration de MySQL

  1. Téléchargez la dernière version de MySQL depuis mysql.com.
  2. Exécutez l'installateur et suivez les instructions de configuration. Sélectionnez "Développeur par défaut" pour inclure le serveur MySQL et MySQL Workbench.
  3. Configurez les informations d'identification de l'utilisateur root de MySQL pendant la configuration et assurez-vous que le service MySQL fonctionne.

Création d'une base de données et de tables d'échantillons

  1. Ouvrez MySQL Workbench et connectez-vous au serveur.
  2. Créez une nouvelle base de données et une table d'échantillon à l'aide des commandes SQL :
CREATE DATABASE SampleDB;
USE SampleDB;
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Position VARCHAR(50),
    Salary DECIMAL(10, 2)
);
Text
  1. Insérez des données d'échantillon :
INSERT INTO Employees (FirstName, LastName, Position, Salary) 
VALUES ('John', 'Doe', 'Software Developer', 80000),
       ('Jane', 'Smith', 'Data Analyst', 75000);
Text

Configuration d'un utilisateur MySQL pour l'accès à distance (optionnel)

Pour l'accès à distance, créez un utilisateur MySQL avec les autorisations nécessaires :

CREATE USER 'remoteUser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON SampleDB.* TO 'remoteUser'@'%';
FLUSH PRIVILEGES;
Text

Connexion de C# à la base de données MySQL

Installation de la bibliothèque MySql.Data dans C#

Pour connecter des applications C# à MySQL, nous utilisons la bibliothèque MySQL Connector/NET (souvent appelée Connector/NET). C'est le pilote officiel .NET pour MySQL, qui peut être installé via NuGet.

  1. Ouvrez Visual Studio et créez une nouvelle application console C#.
  2. Ajoutez la bibliothèque MySql.Data via le Package Manager NuGet :
    • Cliquez droit sur le projet > Gérer les paquets NuGet > Parcourir > recherchez MySql.Data et installez-le.

Écriture du code de connexion

L'exemple de code suivant montre comment établir une connexion à MySQL :

using System;
using MySql.Data.MySqlClient;

public class Program
{
    // Connection string containing the server, database, user credentials, etc.
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
    
    private void Initialize()
    {
        // Create a MySQL connection object
        MySqlConnection connection = new MySqlConnection(connectionString);
        try
        {
            connection.Open();
            Console.WriteLine("Connected to MySQL Database!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
        finally
        {
            connection.Close(); // Ensure the connection is closed after use
        }
    }
}

Explication :

  • Chaîne de connexion : Contient des informations telles que le serveur, le nom de la base de données, l'identifiant de l'utilisateur et le mot de passe.
  • MySqlConnection : Utilisé pour établir la connexion.
  • Méthode Open() : Tente d'ouvrir la connexion.
  • Gestion des exceptions : Intercepter les exceptions pour gérer les erreurs de connexion avec élégance.

Utilisation des enregistrements DNS SRV pour la connexion (optionnel)

Si votre application est hébergée dans le cloud ou nécessite de se connecter à une base de données MySQL via des enregistrements DNS SRV, vous pouvez remplacer le nom du serveur par l'entrée DNS correspondante qui résout l'IP de la base de données.

string connectionString = "Server=mysql.example.com;Database=SampleDB;User ID=root;Password=yourpassword;";

Gestion des connexions (Connection Pooling)

Par défaut, MySQL Connector/NET prend en charge la gestion des connexions, ce qui aide à gérer les connexions à la base de données plus efficacement. La gestion des connexions réduit le surcoût d'ouvrir et de fermer des connexions à plusieurs reprises en réutilisant les connexions existantes à partir d'un pool.

Si vous souhaitez personnaliser le comportement de la gestion des connexions, vous pouvez ajuster votre chaîne de connexion comme ceci :

string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;Pooling=true;";

Gestion des erreurs courantes

Les problèmes courants incluent des chaînes de connexion incorrectes, des restrictions de pare-feu ou le service MySQL ne fonctionnant pas. Assurez-vous que tous les détails de configuration sont corrects et que le service MySQL est actif.

Effectuer des opérations CRUD avec C# et MySQL

Création d'une classe C# pour les opérations sur la base de données

Pour l'organisation du code, créez une classe DatabaseHelper pour gérer toutes les opérations de base de données. Cette classe contiendra des méthodes pour les opérations d'insertion, de lecture, de mise à jour et de suppression des données (CRUD).

using System;
using MySql.Data.MySqlClient;

public class DatabaseHelper
{
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    // Method to insert a new employee record
    public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
            MySqlCommand cmd = new MySqlCommand(query, connection);

            // Add parameters to prevent SQL injection
            cmd.Parameters.AddWithValue("@FirstName", firstName);
            cmd.Parameters.AddWithValue("@LastName", lastName);
            cmd.Parameters.AddWithValue("@Position", position);
            cmd.Parameters.AddWithValue("@Salary", salary);

            connection.Open();
            cmd.ExecuteNonQuery(); // Execute the insert command
        }
    }
}

Explication :

  • Paramétrage : L'utilisation de @Parameter réduit le risque d'injection SQL.
  • connection.Open() : Ouvre la connexion MySQL.
  • cmd.ExecuteNonQuery() : Exécute la requête d'insertion.

Insertion de données dans la base de données MySQL

Pour ajouter de nouvelles données d'employé, appelez la méthode InsertEmployee :

DatabaseHelper dbHelper = new DatabaseHelper();
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);

Récupération et affichage de données

Récupérez des données et affichez-les dans la console :

public void GetEmployees()
{
    using (var connection = new MySqlConnection(connectionString))
    {
        string query = "SELECT * FROM Employees";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        connection.Open();

        using (MySqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine($"{reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
            }
        }
    }
}

Explication :

  • ExecuteReader() : Exécute la requête SELECT et renvoie un objet MySqlDataReader.
  • reader.Read() : Parcourt l'ensemble de résultats et affiche les détails de chaque employé.

Mise à jour et suppression des enregistrements

Voici un exemple pour mettre à jour le salaire d'un employé :

public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
    using (var connection = new MySqlConnection(connectionString))
    {
        string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
        MySqlCommand cmd = new MySqlCommand(query, connection);

        // Parameterize the SQL command
        cmd.Parameters.AddWithValue("@Salary", newSalary);
        cmd.Parameters.AddWithValue("@EmployeeID", employeeId);

        connection.Open();
        cmd.ExecuteNonQuery(); // Execute the update command
        Console.WriteLine("Employee salary updated successfully!");
    }
}

Commande de mise à jour : Utilise une requête paramétrée pour mettre à jour la colonne Salaire en fonction de l'identifiant de l'employé.

Générer des PDF à partir des données MySQL avec IronPDF

Introduction à IronPDF

IronPDF est une bibliothèque robuste qui permet aux développeurs de créer, éditer et manipuler facilement des documents PDF au sein des applications C#. Elle prend en charge une large gamme de fonctionnalités PDF, ce qui en fait un outil parfait pour les applications basées sur les données qui nécessitent une génération automatique de rapports, une manipulation de documents ou une conversion HTML en PDF. Que vous ayez besoin de convertir des pages web dynamiques en fichiers PDF ou de générer des PDF personnalisés à partir de zéro, IronPDF simplifie le processus avec quelques lignes de code.

Caractéristiques clés d'IronPDF

  • Conversion HTML vers PDF : L'une des caractéristiques remarquables d' IronPDF est sa capacité à convertir du contenu HTML en documents PDF entièrement formatés. Cette fonctionnalité est particulièrement utile pour générer des rapports à partir de contenu web dynamique ou lorsqu'on travaille avec des données stockées dans un format web.
  • Édition de PDF : IronPDF permet de modifier des PDF existants, notamment en ajoutant, supprimant et modifiant du contenu tel que du texte, des images, des tableaux, etc. C'est idéal pour les applications qui ont besoin de traiter ou de mettre à jour des documents préexistants.
  • Fusion et division de PDF : Avec IronPDF, vous pouvez facilement fusionner plusieurs PDF en un seul document ou diviser un PDF volumineux en fichiers plus petits. Cette fonctionnalité est utile pour organiser et gérer de grandes collections de documents.
  • Style et personnalisation : lors de la génération de PDF à partir de HTML, vous pouvez utiliser CSS pour styliser le document et obtenir une mise en page personnalisée qui corresponde au design de votre application. IronPDF vous donne un contrôle total sur l'apparence de vos PDF, garantissant qu'ils répondent à vos exigences spécifiques.

Configuration d'IronPDF dans votre projet C#

Pour utiliser IronPDF, installez-le via le Gestionnaire de Packages NuGet dans Visual Studio :

PM > Install-Package IronPdf

Conversion de données MySQL au format PDF

Voici l'exemple de code complet qui montre comment créer un rapport PDF des données des employés :

using System;
using MySql.Data.MySqlClient;
using IronPdf;

public class Program
{
    private static string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    public static void Main(string[] args)
    {
        // Perform CRUD operations
        DatabaseHelper dbHelper = new DatabaseHelper();
        // Insert a new employee
        dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);
        // Display employees
        dbHelper.GetEmployees();
        // Update an employee's salary
        dbHelper.UpdateEmployeeSalary(1, 95000);
        // Generate a PDF report
        dbHelper.GenerateEmployeeReportPDF();
        Console.WriteLine("Operations completed.");
    }
}

public class DatabaseHelper
{
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    // Insert employee into database
    public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@FirstName", firstName);
            cmd.Parameters.AddWithValue("@LastName", lastName);
            cmd.Parameters.AddWithValue("@Position", position);
            cmd.Parameters.AddWithValue("@Salary", salary);
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine($"Employee {firstName} {lastName} inserted successfully!");
        }
    }

    // Get employees from the database and display them
    public void GetEmployees()
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "SELECT * FROM Employees";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            connection.Open();

            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                Console.WriteLine("\nEmployee List:");
                while (reader.Read())
                {
                    Console.WriteLine($"{reader["EmployeeID"]} - {reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
                }
            }
        }
    }

    // Update the salary of an employee
    public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@Salary", newSalary);
            cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine($"Employee ID {employeeId}'s salary updated to {newSalary}.");
        }
    }

    // Generate a PDF report of all employees
    public void GenerateEmployeeReportPDF()
    {
        string htmlContent = "<h1>Employee Report</h1><table border='1'><tr><th>EmployeeID</th><th>First Name</th><th>Last Name</th><th>Position</th><th>Salary</th></tr>";
        
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "SELECT * FROM Employees";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            connection.Open();

            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    htmlContent += $"<tr><td>{reader["EmployeeID"]}</td><td>{reader["FirstName"]}</td><td>{reader["LastName"]}</td><td>{reader["Position"]}</td><td>{reader["Salary"]}</td></tr>";
                }
            }
        }
        
        htmlContent += "</table>";

        // Use IronPDF to convert HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("EmployeeReport.pdf");
        Console.WriteLine("PDF Report generated successfully!");
    }
}

Analyse du code

  1. Connexion à la base de données MySQL :

    • Le connectionString définit le serveur MySQL, la base de données, l'utilisateur et le mot de passe.
    • Vous vous connectez en utilisant MySqlConnection et gérez les opérations CRUD avec MySqlCommand.
  2. Opération d'insertion (InsertEmployee) :

    • Utilise MySqlCommand avec des requêtes paramétrées (@FirstName, @LastName, etc.) pour prévenir l'injection SQL.
    • Après l'ouverture de la connexion (connection.Open()), ExecuteNonQuery() exécute la commande SQL INSERT.
  3. Opération de lecture (GetEmployees) :

    • Exécute une requête SELECT * pour récupérer tous les enregistrements des employés.
    • Utilise un MySqlDataReader pour parcourir l'ensemble des résultats et afficher chaque enregistrement dans la console.
  4. Opération de mise à jour (UpdateEmployeeSalary) :

    • La méthode accepte un employeeId et un newSalary pour mettre à jour le salaire de l'employé.
    • Elle utilise une requête SQL UPDATE paramétrée.
  5. PDF Generation (GenerateEmployeeReportPDF):

    • Recueille les données des employés dans une chaîne HTML avec une structure de tableau simple.
    • Le contenu HTML est passé à la méthode RenderHtmlAsPdf d'IronPDF pour générer un rapport PDF.
    • Le PDF résultant est enregistré en tant que EmployeeReport.pdf.

Conclusion

Dans cet article, nous avons parcouru les étapes essentielles pour intégrer MySQL avec une application C#. De la configuration de la base de données et de l'exécution des opérations CRUD à la génération de PDF avec IronPDF, nous avons couvert un large éventail de sujets fondamentaux qui sont cruciaux pour construire des applications basées sur les données. Voici un récapitulatif des concepts majeurs :

  • Intégration MySQL et C# : Nous avons démontré comment se connecter à une base de données MySQL à l'aide de la bibliothèque MySql.Data, gérer les connexions à la base de données et effectuer des opérations CRUD à l'aide de requêtes paramétrées. Cela garantit que les données peuvent être stockées, mises à jour et récupérées efficacement de manière sécurisée et organisée.
  • Exécution des opérations CRUD : Grâce aux exemples de méthodes d'insertion, de mise à jour et de lecture des données des employés, vous pouvez étendre cette logique pour gérer d'autres types d'enregistrements dans une base de données réelle. L'utilisation de requêtes paramétrées aide également à atténuer les attaques par injection SQL, assurant ainsi la sécurité de votre application.
  • IronPDF pour la génération de PDF : IronPDF simplifie la génération de PDF d'aspect professionnel à partir de contenu HTML dynamique. En convertissant les données récupérées de MySQL en un tableau HTML, nous pouvons créer des rapports personnalisés et les enregistrer sous forme de PDFs, ce qui peut être utile pour générer des factures, des rapports, des résumés, et plus encore. L'API simple d'IronPDF en fait un excellent outil pour tout développeur C# ayant besoin de gérer la génération de PDFs dans ses applications.

En combinant C# et MySQL, les développeurs peuvent construire des applications robustes qui stockent et gèrent les données tout en offrant des fonctionnalités avancées comme le reporting en PDF. Ces capacités sont utiles dans tous les secteurs, de la finance à la santé, où la gestion précise des données et le reporting sont essentiels.

Pour les développeurs cherchant à incorporer la génération de PDF dans leurs applications C#, IronPDF vous permet de tester l'ensemble des fonctionnalités. Que vous ayez besoin de générer des documents simples ou des rapports sophistiqués, IronPDF peut être un outil inestimable pour automatiser la création de PDF dans votre flux de travail.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise