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 985

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.
 

Commentaires et avis

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

Discussions en rapport avec ce code source dans le forum

Problème de propriété d'un web control [ par tof.p ] Bonjour à tous,G créé un composant ASP.Net en c#, il hérite de TextBox. G créé une propriété dans ce composant. Pas de problème, le composant fonction ComboBox - DropDownStyle [ par vdeng ] Je ne sais pas si c'est possible, sans créer un composant personnalisé,Lorsque le composant combobox a le focus,dès qu'on tape une 1ère lettre, on voi Connexion à un serveur ftp [ par Fildomen ] salutje veux faire un prog qui se connecte à un serveur ftp (comme "ftp.multimania.fr"), et j'efface un fichier la dedans nomé "xx.txt", et je upload Assigner une valeur a : Control.Location.X [ par ben1964 ] Je voudrais savoir comment Assigner une valeur dans : Control.Location.X ou Control.Location.Y Le control pour mon cas est le PictureBox . J'ai essayè Composant WebClient [ par ennixo ] Bonjour, j'utilise le composant WebClient pour faire une requette HTTP et j'aimerais savoir comment je peux récupérer la réponse genre "HTTP 200 OK"me ActiveGantt composant??? [ par rappeur ] Bonjour, j'aimerais savoir s'il n'y pas quelqu'un qui ait déjà programmé avec lde composant ActiveGantt for ASP.NET Web Server Control C# de www.sourc Un Control PictureBox Comme parametre ou arg. [ par ben1964 ] Comment peut-on passer comme argument ou param. Un Control PictureBox à une fonction et l'exploiter dans cette derniere ?Comment declarer la deuxiemme Annuler l'évenement MouseDown || Savoir sur quel composant est le curseur [ par madcorp ] Hello,En fait, mon problème est que lorsque l'on clique sur un composant et que l'on garde le bouton de la souris enfoncé (donc juste MouseDown) et qu le composant utilisé dans la zone de propriété de visual studio [ par grinlen ] Bonjour,je suis à la recherche du composant utilisé par microsoft pour réaliser leur panneau ed propriété des composant dans visual studio.Ca semble ê Connexion Internet [ par Bidou ] Bonjour,Je cherche une méthode qui me permettrais de savoir si une connexion à internet est existante.J'ai trouvé ce morceau de code sur Internet, mai


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.