Simplifier les requete sql

Contenu du snippet

Je trouve que faire des requete dans le code est très ennuyeux, j'au fait alors un petit code qui permet de faire plus simplement et plus joliement (je trouve des requete sql) avant de les envoyer au SGBD...

Source / Exemple :


using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;

    public class DbAccess : Hashtable
    {
        public DbAccess()
        {
            Requete rq;
            // j'ai pris un exemple simpliste
            #region "Requetes Personne"
            rq = new Requete("getPersonnes");
            rq.Valeur = "SELECT * FROM Personne";
            this.Add(rq.Name, rq);

            rq = new Requete("addPersonne");
            rq.Valeur = "INSERT INTO Personne" +
                        "(Nom, Prenom)" +
                        "VALUES " +
                        "(@Nom, @Prenom)";
            this.Add(rq.Name, rq);

            rq = new Requete("updPersonne");
            rq.Valeur = "UPDATE Personne SET " +
                        "Nom = @Nom, " +
                        "Prenom = @Prenom " +
                        "WHERE id = @id";
            this.Add(rq.Name, rq);

            rq = new Requete("delPersonne");
            rq.Valeur = "DELETE FROM Prenom WHERE id = @id";
            this.Add(rq.Name, rq);
            #endregion
        }
    }
    public class Requete
    {
        #region "Propriété"
        internal string _Name;
        public string Name
        {
            get { return _Name; }
        }
        internal string _Valeur;
        public string Valeur
        {
            get { return _Valeur; }
            set { _Valeur = value; }
        }
        #endregion
        #region "Constructeurs"
        public Requete(string name)
        {
            this._Name = name;
        }
        #endregion
        #region "Méthodes"
        public void AddParam(string champ, string valeur)
        {
            this._Valeur.Replace(champ, valeur);
        }
        public void AddParam(string champ, int valeur)
        {
            this._Valeur.Replace(champ, valeur.ToString());
        }
        public void AddParam(string champ, double valeur)
        {
            this._Valeur.Replace(champ, "'" + valeur.ToString() + "'");
        }
        public void AddParam(string champ, DateTime valeur)
        {
            string stringDate = valeur.Year.ToString() + "-" & valeur.Month.ToString() & "-" + valeur.Day.ToString() + " " & valeur.Hour.ToString() + ":" & valeur.Minute.ToString() + ":" & valeur.Second.ToString();
            this._Valeur.Replace(champ, "'" + stringDate + "'");
        }
        #endregion
    }

// comment l'utiliser..?

//à declarer au tt début du programme
DbAccess _LeDbAccess = new DbAccess ()

//à utiliser a chaque fois qu'on accede à la base a l'aide d'une requete
Requete rq = (Requete)_LeDbAccess["addPersonne"];
rq.AddParam("@Nom", leNom );
rq.AddParam("@Prenom", lePrenom );
//rq.Valeur est notre requete...
SqlCommand sql = new SqlCommand(rq.Valeur);
....

Conclusion :


laissez moi des critiques... Je ferai en sorte de faire mieux...
A+.

A voir également

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.