Connection simplifier a la base de donnée

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 562 fois - Téléchargée 19 fois

Contenu du snippet

cette classe permet de vous faire gagner du temps sur les diverses connexion que vous devrez effectuer vert votre base de donner.
elle est composer de trois partie:

-le constructeur auquel vous devrez passer en paramètre la localisation de la base de donnée ainsi que sont nom composer de son extension
-une fonction permettant de lancer des requettes vert la base de donnée retournant vrais si celle ci c'est dérouler correctement.
-la même fonction avec un paramètre supplémentaire dans le quel la fonction insert un tableau de résulta

Source / Exemple :


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Data.OleDb;
using System.Collections;

namespace stage
{
    class sql_querry
    {
        OleDbConnection conection;
        
        public sql_querry(string localisation, string nombase)
        {
            string conectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + localisation + "\\" + nombase + ";";
            conection = new OleDbConnection();
            conection.ConnectionString = conectionstring;            
            conection.Open();
        }

        public bool command_sql(string commande, out ArrayList res)
        {
            ArrayList ligne;
            OleDbDataReader reader;
            OleDbCommand cmd;
            
            bool etat = true;
            int i;

            cmd = new OleDbCommand();
            ligne = new ArrayList();
            res = new ArrayList();

            try
            {
                cmd.Connection = conection;
                cmd.CommandText = commande;
                reader = cmd.ExecuteReader();
                while (reader.NextResult())
                {
                    for (i = 0; i > reader.FieldCount; i++)
                    {
                        ligne.Add(reader.GetValue(i));
                    }
                    res.Add(ligne);
                }
            }
            catch (OleDbException ex)
            {
                    MessageBox.Show("erreur : " + ex);
                etat = false;
            }

            return etat;
            
        }
        public bool command_sql(string commande)
        {
            OleDbCommand cmd;

            bool etat = true;

            cmd = new OleDbCommand();
            cmd.Connection = conection;
            try
            {
                cmd.CommandText = commande;
                cmd.ExecuteReader();
            }
            catch (OleDbException ex)
            {
                MessageBox.Show("erreur : " + ex.Message);
                etat = false;
            }

            return etat;

        }
    }
}

Conclusion :


facile a gérer hein ?

si vous trouver le moindre problème dans cette classe prévenez moi

A voir également

Ajouter un commentaire Commentaires
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
26 avril 2011 à 09:54
C'est quand même pas très "sexy"... ça ne sert que pour Access... c'est pas super bien codé...
bref... il y a encore du boulot pour faciliter la connexion à une base de données !
cs_audain Messages postés 9 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 28 avril 2011
26 avril 2011 à 12:56
je vais pas faire ton boulot !!!!
c'est un exemple de code qui te permet de ne pas retaper 15000 fois la même chose !!!
adapte celons tes besoin.
iguypouf Messages postés 45 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 26 août 2009
26 avril 2011 à 14:44
Y a tellement à adapter, qu'autant repartir de rien. C'est gonflé de l'agresser alors qu'il a entièrement raison.

Enfin, fais un effort pour ton orthographe, que ça soit en français ou en anglais.

Le seul mot que j'ai vu sans faute c'est "SQL", même dans "Query" c'est pas bon...
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
26 avril 2011 à 14:55
Bonjour,

Il est inutile de prendre la mouche sur un commentaire. Après tout, tu as posté ce code pour avoir l'avis et commentaires de tout un chacun.

Je me permettrai donc d'ajouter le mien:
1) Convention de nommage pas très rigoureux: mélange français-anglais, nom de classe et méthodes non explicites...

2) Problème d'ouverture et fermeture de connexion: l'ouverture est faite dans le constructeur
et la fermeture est inexistante...
Comment ferais-je si la connexion se perd au milieu de mon programme ??? (toutes les méthodes ne fonctionnent plus).
Comment ferais-je pour gérer les transactions ???

3) Le remplacement des exceptions par un code retour entraine un grosse perte d'information dans le code appelant. De plus, en cas d'exception, un MessageBox.Show(...) est appelé => pas très best-practice tout ça. En effet, si je veux utiliser ta brique dans un projet Asp.Net, que se passe-t-il en cas d'exception ???

4) Retour d'exécution de commande dans une ArrayList[ArrayList[object]] pas très best-practice non plus (et je passerai la méthode de lecture qui est discutable aussi) => préférer l'utilisation d'un DataSet plus adaptée au fonctionnement.

Et plutôt que "d'adapter à mes besoins" (comme tu le dis si bien), je préférerai largement l'utilisation d'une librairie plus qu'approuvé par la communauté .Net: Enterprise Library.
Url: http://msdn.microsoft.com/en-us/library/ff648951.aspx
En l'occurence, la partie "Data Access Application Block": http://msdn.microsoft.com/en-us/magazine/cc163766.aspx
C'est en open source, tu auras donc le plaisir de pouvoir voir tout le code d'accès aux base de données.

Bref, tu comprendras que je suis plutôt d'accord avec le commentaire de Sebmafate.

Ne vois pas là une intention de ma part de te froisser, uniquement celle de donner mon avis pour faire vivre l'échange communautaire créé par codes-sources et nous faire tous avancer...
Car savoir accepter les critiques et se remettre en cause, c'est la raison d'être d'un développeur...
cs_audain Messages postés 9 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 28 avril 2011
26 avril 2011 à 15:01
moi je postait pas dans le but de me prendre une bric sur le dos, mais plutôt d'aider les personne qui voudrais cherché un outils rapidement, maintenant vus les commentaire reçus il est claire que je ne les lirais plus et ne posterais de nouveau code de si tôt

sur ce au revoir mes chère râleurs.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_audain)