1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
/// <summary>
/// Classe permettant l'accès à la base de données
/// </summary>
/// <remarks>Cette classe se base dur DBFactory.
/// Par conséquent, la connexion peut s'effectuer sur différents type de base de données.</remarks>
public class DBAccess
{
#region Variables privées
/// <summary>
/// Connexion à la base de données
/// </summary>
private DbConnection dbConnection = null;
/// <summary>
/// Chaine de connexion à la base de données
/// </summary>
private ConnectionStringSettings connectionStringSettings;
/// <summary>
/// Instance de connexion liée à la base de données
/// </summary>
private static DBAccess gtmInstance;
/// <summary>
/// Verrou sur l'instance de connexion
/// </summary>
private static object gtmInstanceLocker = new object();
#endregion
#region Propriétés
/// <summary>
/// Chaine de connexion vers la base de données
/// </summary>
public ConnectionStringSettings ConnectionStringSettings
{
get { return connectionStringSettings; }
set { connectionStringSettings = value; }
}
/// <summary>
/// Propriété permettant de récupérer l'instance de connexion à la base de
/// données
/// <remarks>Utilise le singleton pattern</remarks>
/// </summary>
public static DBAccess Instance
{
get
{
lock (gtmInstanceLocker)
{
if (gtmInstance == null)
gtmInstance = new DBAccess();
return gtmInstance;
}
}
}
#endregion
#region Méthodes publiques
/// <summary>
/// Méthode permettant la récupération de la connexion à la base de données ouverte
/// </summary>
/// <returns>La connexion à la base de données</returns>
public DbConnection getDataBaseConnection()
{
DbProviderFactory factory = null; // -- DataBase provider
try
{
// -- Récupération du type de base de données en fonction
// -- de la chaine de connexion
// ------------------------------------------------------
factory = DbProviderFactories.GetFactory(connectionStringSettings.ProviderName);
// -- Création de la connexion
// ---------------------------
if (dbConnection == null)
dbConnection = factory.CreateConnection();
// -- Renseignement de la chaine de connexion
// ------------------------------------------
if (dbConnection.State == ConnectionState.Closed)
dbConnection.ConnectionString = ConnectionStringSettings.ConnectionString;
// -- Ouverture de la connexion si cette dernière est fermée
// ---------------------------------------------------------
if (dbConnection.State == ConnectionState.Closed)
dbConnection.Open();
}
catch (Exception ex)
{
throw new Exception("GTMAccess.getDataBaseConnection : " + ex.Message + "\n");
}
return dbConnection;
} |
Partager