none
Probleme avec string.IsNullorEmpty RRS feed

  • Question

  • Bonjour,

    string.IsNullOrEmpty est utilisé pour les types String.

    Que faut il utiliser quand c'est de type int et datetime comme dans cette exemple

    if (string.IsNullOrEmpty(patientToValidate.Age)) ou if (string.IsNullOrEmpty(patientToValidate.dateN))

    Merci

    lundi 21 novembre 2011 11:41

Réponses

  • Bonjour,

    Il faut utiliser ou soit || et pas ET && car si une des deux conditions n'est pas ok alors on redemande comme ceci:

    if (string.IsNullOrEmpty(MailPatient) || !Regex.IsMatch(EmailPatient, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))
          {
            //pas correct
            Console.WriteLine("veuillez recommencer");
          }
          else
          {
            //ok
            Console.WriteLine("ok");
          }
    



    fred on youTube
    PHP MySQL Web Site Creator
    fred
    • Marqué comme réponse Fathiass dimanche 27 novembre 2011 20:39
    mardi 22 novembre 2011 15:23

Toutes les réponses

  • Bonjour,

     

    Un exemple sur une date :

    DateTime d = DateTime.Now;
    			if (d != null)
    			{
    				MessageBox.Show("pas vide");
    			}
    			else
    			{
    				MessageBox.Show("vide");
    			}
    



    ZGuideTV.NET project Admin/Dev : http://zguidetv.codeplex.com/
    lundi 21 novembre 2011 12:01
  • Bonjour,

     

    int et DateTime sont des structures et ne peuvent donc prendre la valeur null.

    Il faut que la properiété Age de votre objet soit de type Nullable<int> (int?) et que DateN soit de type Nullable<DateTime> (DateTime?) :

     

          public int? Age
            {
                get;
                set;
            }
    
            public DateTime? DateN
            {
                get;
                set;
            }
    

     


    Puis vos deux tests deviendraient :

     

        if (patientToValidate.Age.HasValue)
        if (patientToValidate.dateN.HasValue)
    


    Pour plus d'information sur Nullable<T>, voir

    http://msdn.microsoft.com/fr-fr/library/b3h38hb0(v=vs.80).aspx#Y0

     

    Cordialement.

    lundi 21 novembre 2011 12:10
    Auteur de réponse
  • Bonjour,

    vous avez aussi la possibilité de passer par la méthode ToString comme ceci:

    DateTime anniversaire = DateTime.Now;
          int unNombre = 1;
          if (string.IsNullOrEmpty(anniversaire.ToString()))
          {
            // valeur non assignée
          }
          else
          {
            //ok
          }
          if (string.IsNullOrEmpty(unNombre.ToString()))
          {
            // valeur non assignée
          }
          else
          {
            //ok
          }
    



    fred on youTube
    PHP MySQL Web Site Creator
    fred
    lundi 21 novembre 2011 16:06
  • Bonsoir,

    Fred75, le  if (string.IsNullOrEmpty(anniversaire.ToString())) marche bien mais que faire pour la gestion des expressions réguliéres

    comme ceci

    if(string.IsNullOrEmpty(patientToValidate.MailPatient))

    && !Regex.IsMatch(patientToValidate.EmailPatient, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))

    merci

    lundi 21 novembre 2011 21:29
  • Bonjour,

    Il faut utiliser ou soit || et pas ET && car si une des deux conditions n'est pas ok alors on redemande comme ceci:

    if (string.IsNullOrEmpty(MailPatient) || !Regex.IsMatch(EmailPatient, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))
          {
            //pas correct
            Console.WriteLine("veuillez recommencer");
          }
          else
          {
            //ok
            Console.WriteLine("ok");
          }
    



    fred on youTube
    PHP MySQL Web Site Creator
    fred
    • Marqué comme réponse Fathiass dimanche 27 novembre 2011 20:39
    mardi 22 novembre 2011 15:23
  • Bonjour,

    Essayez ça:

    if(string.IsNullOrEmpty(patientToValidate.MailPatient)
    || string.IsNullOrEmpty(patientToValidate.EmailPatient)
    || (!string.IsNullOrEmpty(patientToValidate.EmailPatient)
         && !Regex.IsMatch(patientToValidate.EmailPatient, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$")))
    {
       // ...
    }
    Cordialement,
    aelassas.free.fr

    • Modifié Link.frEditor mercredi 23 novembre 2011 23:20 Formatage du code
    mercredi 23 novembre 2011 23:18
    Auteur de réponse
  • Merci ça marche bien avec ||
    dimanche 27 novembre 2011 20:40