Utilisation de MySQL avec C Sharp

Un article de LaPageDuJour.

Aller Ă  : Navigation, Rechercher

Sommaire

[modifier] Pourquoi faire ?

Typiquement, vous avez grandi avec votre amis le serveur MySQL. Et celui est en plus devenu avec le temps aussi fort que les gros SGBD donc pourquoi ne pas continuer avec lui ? Vous avez peut-ĂȘtre aussi des sites en PHP dont vous aimeriez accĂ©lĂ©rer certains traitements grĂące au C# (sous Windows ou Linux avec Mono).

Comment utiliser une connexion MySQL ?

Notez que ce qui suit est parfaitement utilisable sous Linux avec Mono.

[modifier] Installation

[modifier] Télécharger MySQL Connector

On télécharge MySQL Connector pour pouvoir se connecter de maniÚre simple à la BDD à partir du site de MySQL.

[modifier] Ajouter la DLL de MySQL Connector

Ajoutez la référence de la DLL à votre projet en sélectionnant MySQL.Data.Dll depuis le répertoire de MySQL .Net Connector (C:\Program Files\MySQL\MySQL Connector Net 5.0.8.1 par exemple).

[modifier] Utilisation

Dans le code qui suit, il n'y a aucune structure. C'est à vous de structurer les données que vous allez utiliser en fonction de vos besoins.

L'utilisation des DataSet n'est pas plus complexe que celles des SqlDataReader et permet de stocker les données en mémoire le temps de les traiter. Cela simplifie l'utilisation de la base de données lorsque l'on travaille en environnement multi-threadé.

using MySql.Data.MySqlClient;
namespace MonProjet
{
    class Program
    {
        static void Main(String[] args)
        {
            // On définit et ouvre la connexion
            MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection( 
                "Server=localhost;Database=test;User ID=root;Password=root;"
            );
            conn.Open();
 
            // On fait une requĂȘte
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = new MySqlCommand(
		"SELECT `nom`,`prenom` FROM `personnes` WHERE `age` > 18",
		conn 
	    );
 
            // On dĂ©finit en lieu de stockage et on le rempli avec le rĂ©sultat de la requĂȘte
            DataSet ds = new DataSet();
            adapter.Fill(ds);
 
            // A cet instant, la connexion MySQL est disponible pour faire une autre requĂȘte sans
            // que notre DataSet ne soit perturbé
 
            // On lit les données
            foreach( DataRow dr in ds.Tables[0].Rows ) {
                 System.Console.WriteLine("Nom: "+ (String) dr[0] +"; Prenom: "+ (String) dr[1]);
            }
        }
    }
}