T.P. Liaison entre C# et MySQL
Vous allez dans ce T.P. réalisez la connexion entre C# et MySQL comme vous avez réalisé cette connexion avec le langage PHP.
Pour débuter vous allez utiliser le code se trouvant dans cette
page.
Comment créer une connexion MySQL local en C#
Introduction
Cette article montre comment se connecter à une base de données MySQL en utilisant MySQL Connector .NET, dans ce cour nous utiliserons un serveur apache local créer avec XAMPP.
Prérequis
- Avoir Visual Studio d'installer sur sa machine - Version Express disponible sur le site microsoft.com
- Avoir XAMPP d'installer - Disponible sur le site Appachefriends.org
- Avoir Téléchargé les fichiers DLL MySQL Connector .NET - Disponible sur le site mysql.com ou ici
Commençons
Lancez les services Apache et MySQL depuis XAMPP Control Panel. Maintenant nous pouvons passer aux étapes de création de base de données et de connexion depuis une application C#.
Étape 1 :
Ouvrez la page MySQL Admin (Depuis XAMPP Control Panel ou tapez 127.0.0.1 dans l'url de votre navigateur) et créez une nouvelle base de données. Dans notre exemple nous l'appelerons "mli".
Étape 2 :
Après avoir créer votre base de données, créez une table dans celle-ci. Dans notre exemple nous créons une table "contact" avec les champs suivant :
id (INTEGER), name (VARCHAR), tel (VARCHAR).
Étape 3 :
C'est le moment de créer votre projet sous Visual Studio. Ouvrez l'IDE, et créez un nouveau projet. Pour ma part je le nomme TutoMySQL. Une fois le projet crée, nous allons ajouter les "références", autrement dit les librairies qui vont nous permettre de travailler avec MySQL. Petit rappel, une librairie n'est autre que fichier DLL, composé de classes. Pour ce faire faite un clic droit sur "Reference" pour ajouter une nouvelle référence. Importer les fichiers DLL MySql.dll et MySql.web.dll téléchargés auparavant.
Étape 4 :
Ajoutez l'espace de nom MySql dans votre projet, cette assembly sera nécessaire pour la classe Bdd présentée ci-dessous.
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
// Librairie MySQL ajoutée dans les références.
using MySql.Data.MySqlClient;
namespace TutoMySQL
{
}
Étape 5 :
Aperçu de la chaîne de connexion :
// 127.0.01 est l'adresse localhost du serveur Apache XAMPP
// Nous avons créer une base de données nommée "mli"
// L'utilisateur par défaut lors de l'installation de XAMPP est "root" sans mot de passe.
string connectionString = "SERVER=127.0.0.1; DATABASE=mli; UID=root; PASSWORD=";
Étape 6 :
Le code suivant montre comment insérer des données dans une table MySQL. Pour cela créons une classe Contact simple et Bdd comme exemple avec une méthode (ou fonction) d'ajout et de connexion.
public class Contact
{
// Création de 3 propriétés identifiant, nom et téléphone
public int Id { get; set; }
public string Name { get; set; }
public string Tel { get; set; }
// Constructeur
public Contact()
{
}
}
La classe Bdd va permettre la communication entre la base de donénes SQL et le programme. L'initialisation de la connexion s'éffectue dans le constructeur. On peut très bien ne pas faire comme cela et mettre la méthode InitConnexion en public avec en paramètre la chaîne de connexion.
public class Bdd
{
private MySqlConnection connection;
// Constructeur
public Bdd()
{
this.InitConnexion();
}
// Méthode pour initialiser la connexion
private void InitConnexion()
{
// Création de la chaîne de connexion
string connectionString = "SERVER=127.0.0.1; DATABASE=mli; UID=root; PASSWORD=";
this.connection = new MySqlConnection(connectionString);
}
// Méthode pour ajouter un contact
public void AddContact(Contact contact)
{
try
{
// Ouverture de la connexion SQL
this.connection.Open();
// Création d'une commande SQL en fonction de l'objet connection
MySqlCommand cmd = this.connection.CreateCommand();
// Requête SQL
cmd.CommandText = "INSERT INTO contact (id, name, tel) VALUES (@id, @name, @tel)";
// utilisation de l'objet contact passé en paramètre
cmd.Parameters.AddWithValue("@id", contact.Id);
cmd.Parameters.AddWithValue("@name", contact.Name);
cmd.Parameters.AddWithValue("@tel", contact.Tel);
// Exécution de la commande SQL
cmd.ExecuteNonQuery();
// Fermeture de la connexion
this.connection.Close();
}
catch
{
// Gestion des erreurs :
// Possibilité de créer un Logger pour les exceptions SQL reçus
// Possibilité de créer une méthode avec un booléan en retour pour savoir si le contact à été ajouté correctement.
}
}
}
Utilisation dans le code :
static class Program
{
static void Main(string[] args)
{
// Créer d'un contact à ajouter
Contact contact = new Contact();
contact.Id = 1;
contact.Name = "Mli";
contact.Tel = "00 00 00 00 00";
// Création de l'objet Bdd pour l'intéraction avec la base de donnée MySQL
Bdd bdd = new Bdd();
bdd.AddContact(contact);
}
}
Pour finir
On vient de voir comment créer une connexion local à MySQL avec C# ainsi qu'une bref utilisation du traitement des données. Sachez que votre application peut devenir extrêmement intéressante si vous hébergez cette base de données sur un serveur distant. Cette manipulation vous permettra de créer des applications partagés de la même manière qu'un client/serveur.
Téléchargement
Télécharger le projet "comment se connecter à une base de données MySQL local en C#" :
- TutoMySQL-dotnet.zip (sous Visual Studio 2012)
- Fichier SQL (.sql) de la base de données à importer dans PhpMyAdmin
Attention à bien écouter ce que je vais dire car sinon vous risquez de rencontrer des difficultés ...
1 - Votre premier objectif est de faire fonctionner ce code.
2 - Est-ce que tous les using sont indispensables ? Précisez.
3 - Maintenant il vous reste à implémenter la base café et à réaliser une interface simple pour ajouter, supprimer un serveur et obtenir la liste des serveurs.
4 - Réaliser ce T.P. en utilisant la base de données de votre voisin.