using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
namespace projet.bddmanager
{
///
/// Singleton : connexion à la base de données et exécution des requêtes
///
public class BddManager
{
///
/// instance unique de la classe
///
private static BddManager instance = null;
///
/// objet de connexion à la BDD à partir d'une chaîne de connexion
///
private readonly MySqlConnection connection;
///
/// Constructeur pour créer la connexion à la BDD et l'ouvrir
///
/// chaine de connexion
private BddManager(string stringConnect)
{
connection = new MySqlConnection(stringConnect);
connection.Open();
}
///
/// Création d'une seule instance de la classe
///
/// chaine de connexion
/// instance unique de la classe
public static BddManager GetInstance(string stringConnect)
{
if (instance == null)
{
instance = new BddManager(stringConnect);
}
return instance;
}
///
/// Exécution d'une requête de type LCT (begin transaction...)
///
/// requête
public void ReqControle(string stringQuery)
{
MySqlCommand command = new MySqlCommand(stringQuery, connection);
command.ExecuteNonQuery();
}
///
/// Exécution d'une requête de type LMD (insert, update, delete)
///
/// requête
/// dictionnire contenant les parametres
public void ReqUpdate(string stringQuery, Dictionary parameters = null)
{
MySqlCommand command = new MySqlCommand(stringQuery, connection);
if (!(parameters is null))
{
foreach (KeyValuePair parameter in parameters)
{
command.Parameters.Add(new MySqlParameter(parameter.Key, parameter.Value));
}
}
command.Prepare();
command.ExecuteNonQuery();
}
///
/// Execution d'une requête de type LID (select)
///
/// requête
/// dictoinnaire contenant les parametres
/// liste de tableaux d'objets contenant les valeurs des colonnes
public List