/// <summary>
            /// Retourne la valeur typée du champ spécifié par un nom
            /// </summary>
            /// <typeparam name="T">Type de la valeur attendue</typeparam>
            /// <param name="NomChamp">Nom du champ pour lequel on veut récupérer sa valeur</param>
            /// <param name="ValeurParDefaut">Valeur par défaut à retourner si le champ n'existe pas ou si sa valeur n'est pas du type attendu</param>
            /// <returns>Valeur du champ si il existe, sinon null</returns>
            public T ValeurChamp <T>(string NomChamp, T ValeurParDefaut = default(T))
            {
                object Resultat = this[NomChamp];

                if (Resultat == null)
                {
                    return(ValeurParDefaut);
                }
                if (Resultat is MySql.Data.Types.MySqlDateTime)
                {
                    MySql.Data.Types.MySqlDateTime Valeur = (MySql.Data.Types.MySqlDateTime)Resultat;
                    Resultat = Valeur.IsValidDateTime ? (object)Valeur.GetDateTime() : ValeurParDefaut;
                }
                else if (Resultat is MySql.Data.Types.MySqlDecimal)
                {
                    MySql.Data.Types.MySqlDecimal Valeur = (MySql.Data.Types.MySqlDecimal)Resultat;
                    Resultat = !Valeur.IsNull ? (object)Valeur.Value : ValeurParDefaut;
                }
                return((Resultat is T) ? (T)Resultat : ValeurParDefaut);
            }
        /// <summary>
        /// Permet de récupérer la valeur typée du premier champ du premier enregistrement résultant d'une requête de consultation
        /// </summary>
        /// <typeparam name="T">Type de la valeur attendue</typeparam>
        /// <param name="Requete">Requête SQL à exécuter (doit être de type SELECT ou SHOW)</param>
        /// <param name="Valeurs">Valeurs des parties variables</param>
        /// <returns>Valeur typée du premier champ du premier enregistrement si possible, sinon null</returns>
        public T ValeurDe <T>(string Requete, params object[] Valeurs)
        {
            object Resultat = ValeurDeAvecDefaut(default(T), Requete, Valeurs);

            if (Resultat is MySql.Data.Types.MySqlDateTime)
            {
                MySql.Data.Types.MySqlDateTime Valeur = (MySql.Data.Types.MySqlDateTime)Resultat;
                Resultat = Valeur.IsValidDateTime ? (object)Valeur.GetDateTime() : null;
            }
            else if (Resultat is MySql.Data.Types.MySqlDecimal)
            {
                MySql.Data.Types.MySqlDecimal Valeur = (MySql.Data.Types.MySqlDecimal)Resultat;
                Resultat = !Valeur.IsNull ? (object)Valeur.Value : null;
            }
            if (Resultat is T)
            {
                return((T)Resultat);
            }
            if (SurErreur != null)
            {
                SurErreur(this, MethodeExecutantRequeteSql.ValeurDe_Typee, Requete, Valeurs, string.Format("Imcompatibilité entre le résultat qui est de type {0} et le type attendu qui est {1} !", (Resultat != null) ? Resultat.GetType().FullName : "null", typeof(T).FullName));
            }
            return(default(T));
        }