Utilisation de MySQL avec C Sharp
Un article de LaPageDuJour.
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]); } } } }