begin process at 2008 08 22 04:51:21
1 229 775 membres
46 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMPOSANT PEMETTANT DE GÉRER LA CONNEXION À UNE BASE DE DONNÉES


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : composant, control, connexion, db Niveau : Initié Date de création : 05/12/2002 Date de mise à jour : 05/12/2002 12:10:17 Vu : 7 081

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

Sans doute ce code a déjà été implémenté par un tiers sur ce site mais, pour ma part, j'en ai fait un composant me permettant de gérer l'ouverture et la fermeture d'une connexion à une BdD. Ainsi, tous les composants utilisent une seule et même connexion à la BdD. A chaque fois qu'une connexion est demandée, une référence à cette dernière est fournie à l'appelant.

Source

  • using System;
  • using System.Data.OleDb;
  • namespace JobManagement.Components.Data
  • {
  • /// <summary>
  • /// Représente le gestionnaire de connexion à la base de données.
  • /// </summary>
  • public class DataConnection
  • {
  • private OleDbConnection objConnect = null;
  • private string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Data\\Job.mdb; Persist Security Info=false;";
  • private string strErrorMessage = null;
  • /// <summary>
  • /// Tente d'ouvrir une connexion à la BdD et retourne
  • /// un objet OledbConnection.
  • /// </summary>
  • public OleDbConnection getConnection
  • {
  • get
  • {
  • objConnect = new OleDbConnection(strConnectionString);
  • try { objConnect.Open(); }
  • catch (OleDbException objExc) {
  • objConnect = null;
  • strErrorMessage = objExc.Message;
  • }
  • return objConnect;
  • }
  • }
  • /// <summary>
  • /// Retourne un message d'erreur en cas d'échec de
  • /// l'ouverture ou de la fermeture de la connexion.
  • /// </summary>
  • public string ErrorMessage
  • {
  • get
  • {
  • return strErrorMessage;
  • }
  • }
  • /// <summary>
  • /// Permet d'obtenir une instance de la classe DataConnection.
  • /// </summary>
  • public DataConnection()
  • {
  • }
  • /// <summary>
  • /// Permet de fermer la connexion à la base de données.
  • /// </summary>
  • public void CloseConnection()
  • {
  • try
  • {
  • if( this.objConnect.State.ToString() == "Open" )
  • this.objConnect.Close();
  • }
  • catch (OleDbException objExc)
  • {
  • this.strErrorMessage = objExc.Message;
  • }
  • finally
  • {
  • this.objConnect = null;
  • }
  • }
  • }
  • }
using System;
using System.Data.OleDb;

namespace JobManagement.Components.Data
{
	/// <summary>
	/// Représente le gestionnaire de connexion à la base de données.
	/// </summary>
	public class DataConnection
	{
		private OleDbConnection objConnect = null;
		private string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Data\\Job.mdb; Persist Security Info=false;";
		private string strErrorMessage = null;

		/// <summary>
		/// Tente d'ouvrir une connexion à la BdD et retourne
		/// un objet OledbConnection.
		/// </summary>
		public OleDbConnection getConnection
		{
			get
			{
				objConnect = new OleDbConnection(strConnectionString);
				try { objConnect.Open(); }
				catch (OleDbException objExc) {
					objConnect = null;
					strErrorMessage = objExc.Message;
				}
				return objConnect;
			}
		}
		
		/// <summary>
		/// Retourne un message d'erreur en cas d'échec de 
		/// l'ouverture ou de la fermeture de la connexion.
		/// </summary>
		public string ErrorMessage
		{
			get
			{
				return strErrorMessage;
			}
		}
		

		/// <summary>
		/// Permet d'obtenir une instance de la classe DataConnection.
		/// </summary>
		public DataConnection()
		{
		}


		/// <summary>
		/// Permet de fermer la connexion à la base de données.
		/// </summary>
		public void CloseConnection()
		{
			try
			{
				if( this.objConnect.State.ToString() == "Open" )
					this.objConnect.Close();
			}
			catch (OleDbException objExc)
			{
				this.strErrorMessage = objExc.Message;
			}
			finally
			{
				this.objConnect = null;
			}
		}

	}
}

Conclusion

1ère étape :
Déclarer une instance de la classe DataConnection. Ex: &lt;&lt; DataConnection objConn = new DataConnection(); &gt;&gt;. Jusque là, aucune connexion n'est encore ouverte à la BdD.

2ème étape :
La propriété de classe getConnection vous fournit un OledbConnection ouverte sur la BdD.
Vous pouvez à présent effectuer vos requêtes à destination de la BdD.

3ème étape :
Certes le garbage collector fait bien son boulot mais bon, il est mieux, à mon entendement, de libérer les ressources utilisées soi même. A cet effet, la méthode de classe : CloseConnection() vous permet de vous assurer que la connexion à la BdD a bien été fermée.

Toutefois, on est pas à l'abri d'une éventuelle erreur. Ainsi, en "interrogeant" la propriété de classe : &lt;&lt; ErrorMessage &gt;&gt;, vous saurez l'erreur qui a été rencontrée.

Je n'ai pas la prétention de fournir une classe "parfaite". Cependant, libre à vous de l'améliorer comme bon vous semble.

Bon dev.

Gz.
  • signaler à un administrateur
    Commentaire de maxvador le 18/07/2003 09:41:54

    Comment tu ferais si c'etait une base SQL serveur. Car ta classe c exactement ce que je recherchais. Ca m'a l'air simple d'utilisation et parfaitement efficace.

    Merci pour ta réponse

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS