Connexion d’une table MySql à un contrôle DataGridView en C #
Connexion d’une table MySql à un contrôle DataGridView en C #
Objectif: Etre capable de charger une table d’une base de donnée MySql dans un contrôle DataGridView
- Description:
- Dans cet article je vais vous montrer étape par étape comment utiliser et connecter C # avec une base de données de type MySql en utilisant MySql Connect / NET et afficher les données d’une table dans un contrôle DataGridView .
- Réalisation
- Créer la base de données et une table dans MySQL. Ici, j’ai créé une base de données appelée « db_gstproduit » et à l’intérieur de la base de données j’ai créé une table appelée » tb_produit ».
- Une fois votre base est crée,la table est remplie, créer un nouveau projet de type « Application Windows Forms » et ajouter le contrôle DataGridView au formulaire.
- S’assurer que le composant « MySQL.Data » est présent dans votre plate-forme, si ce n’est pas le cas télécharger et installer MySQL Connector / NET depuis le site officiel de MySQL . Dans cet article, j’utiliserai la version 6.10 de Connector / NET.
- S’assurer que le composant « MySQL.Data » est présent dans les références de votre projet,si ce n’est pas le cas faire un clic droit sur le nom du projet , et choisir Ajouter une référence
- Pour utiliser l’application sur d’autres ordinateurs sur lesquels le connecteur n’est pas installé, on doit créer une DLL à partir de la référence.
- Pour ce faire, cliquer avec le bouton droit sur le nom de la référence dans le projet et définir le propriété copie locale à true.
- C’est tout ce qu’on à fait avec l’interface graphique. passant au codage.
- Importer le MySqlClient en haut de la classe.
- Créer les variables globales pour la création d’une connexion entre le projet C # et la base de données.
- Ouverture de la connexion
- Pour ouvrir notre connection on est besoin de la méthode open()
- Nous devrions toujours fermer la connection juste après que nous aurons terminé, pour libérer les ressources
- il est toujours préférable d’utiliser la gestion des exceptions avant d’ouvrir une connexion ou de la fermer, pour intercepter les erreurs et y faire face.
- Chargement de la table « tb_produit » dans le contrôle DataGridView
- Créer une variable mySqlDataAdapter pour charger l’adaptateur de données.
- Créer une variable de type string et l’initialiser avec la selection de tous les données de la table « tb_produit »
- Créer un DataSet pour charger la table qui est détenue par le mySqlDataAdapter ,et l’initialiser.
- Remplissage du DataSet avec la table connectée à mySqlDataAdapter.
- Affectation de la source de données préparée au contrôle DaraGridView
- Pratique
using MySql.Data.MySqlClient;
private string server; //Indique où notre serveur est hébergé, dans notre cas, c'est localhost. private string database; //Est le nom de la base de données utilisée, dans notre cas, //c'est la base de données que nous avons déjà créée qui est "db_gstproduit". private string uid; //C'est le nom d'utilisateur MySQL. private string password; //C'est le mot de passe MySQL. private MySqlConnection connection; //contient la chaîne de connexion pour se connecter à la base de données.
private void Form1_Load(object sender, EventArgs e) { server = "localhost"; database = "db_gstproduit"; uid = "root"; password = "*******"; string connectionString; connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; connection = new MySqlConnection(connectionString); }
Ouverture de la connection
private bool OuvrirConnection() { try { connection.Open(); return true; } catch (MySqlException ex) { switch (ex.Number) { case 0: MessageBox.Show("On ne peut pas se connecter" + " au serveur, contacter l'administrateur"); break; case 1045: MessageBox.Show("Mot de passe ou " + " nom d'utilisateur est invalide"); break; default: MessageBox.Show(ex.Message); break; } return false; } }
Fermeture de la connection
private bool FermerConnection() { try { connection.Close(); return true; } catch (MySqlException ex) { MessageBox.Show(ex.Message); return false; } }
MySqlDataAdapter oledbadapt;
string requete = "select * from tb_produit";
DataSet dtset = new DataSet();
oledbadapt.Fill(dtset, requete);
Dgv.DataSource = dtset.Tables[requete];