Пример #1
0
        /// /////////////////////////////////////////////////////////
        public static object StringToType(ETypeChampBasique type, string strTexte)
        {
            if (strTexte.ToUpper() == c_ConstanteNull)
            {
                return(null);
            }
            switch (type)
            {
            case ETypeChampBasique.Bool:
                return(strTexte.ToString() == "1" || strTexte.ToUpper() == "TRUE");

            case ETypeChampBasique.Date:
                try
                {
                    return(Convert.ChangeType(strTexte, typeof(DateTime), null));
                }
                catch
                {
                    //Tente le format sc2i de date chaine
                    try
                    {
                        return(CUtilDate.FromUniversalString(strTexte));
                    }
                    catch
                    {
                        return(null);
                    }
                }

            case ETypeChampBasique.Decimal:
                try
                {
                    return(CUtilDouble.DoubleFromString(strTexte));
                }
                catch
                {
                    return(null);
                }

            case ETypeChampBasique.Int:
                try
                {
                    return(Convert.ChangeType(strTexte, typeof(int), null));
                }
                catch
                {
                    return(null);
                }

            case ETypeChampBasique.String:
                return(strTexte);
            }
            return(null);
        }
Пример #2
0
        /// /////////////////////////////////////////////////////////
        public static object StringToType(TypeDonnee type, string strTexte, CContexteDonnee contexteDonnee)
        {
            if (strTexte.ToUpper() == c_ConstanteNull)
            {
                return(null);
            }
            switch (type)
            {
            case TypeDonnee.tBool:
                return(strTexte.ToString() == "1" || strTexte.ToUpper() == "TRUE");

            case TypeDonnee.tDate:
                try
                {
                    return(Convert.ChangeType(strTexte, typeof(DateTime), null));
                }
                catch
                {
                    //Tente le format sc2i de date chaine
                    try
                    {
                        return(CUtilDate.FromUniversalString(strTexte));
                    }
                    catch
                    {
                        return(null);
                    }
                }

            case TypeDonnee.tDouble:
                try
                {
                    return(CUtilDouble.DoubleFromString(strTexte));
                }
                catch
                {
                    return(null);
                }

            case TypeDonnee.tEntier:
                try
                {
                    return(Convert.ChangeType(strTexte, typeof(int), null));
                }
                catch
                {
                    return(null);
                }

            case TypeDonnee.tString:
                return(strTexte);

            case TypeDonnee.tObjetDonneeAIdNumeriqueAuto:
                try
                {
                    if (contexteDonnee == null)
                    {
                        return(null);
                    }
                    //Syntaxe : classe|id
                    int nPos = strTexte.LastIndexOf("|");
                    if (nPos < 0)
                    {
                        return(null);
                    }
                    string strClasse = strTexte.Substring(0, nPos);
                    int    nId       = Int32.Parse(strTexte.Substring(nPos + 1));
                    Type   tp        = CActivatorSurChaine.GetType(strClasse, true);
                    if (tp != null)
                    {
                        CObjetDonneeAIdNumerique objet = (CObjetDonneeAIdNumerique)Activator.CreateInstance(tp, new object[] { contexteDonnee });
                        if (objet.ReadIfExists(nId))
                        {
                            return(objet);
                        }
                    }
                    return(null);
                }
                catch
                {
                    return(null);
                }
            }
            return(null);
        }