Partage
  • Partager sur Facebook
  • Partager sur Twitter

Format de chaine de caractére incorrect

    13 juillet 2019 à 20:01:09

    Bonjour,

    S'il vous plait, j'ai une erreur qui apparait lors de l'update. En fait, quand l'update se fait avec un textbox vide j'ai l'erreur "Format de chaine de caractére incorrect".

    Comment on peut vérifier sur le code si le textbox est vide, comme ça je lui attribue NULL et la modification passe sans soucis.

    Merci.

    l'erreur survient au niveau de cette ligne. 

    int cle=int.Parse(txtclevalue.txt); 



    • Partager sur Facebook
    • Partager sur Twitter
      13 juillet 2019 à 21:03:30

      int.Parse doit plutôt attendre un String comme argument, non ?
      • Partager sur Facebook
      • Partager sur Twitter
        15 juillet 2019 à 10:35:03

        Salut,

        Pour vérifier si un textbox est vide, tu peux utiliser String.IsNullOrEmpty(txtclevalue.Text)

        Parcontre je pense que le int.Parse va te lever une exception si tu lui passes un "null".

        Fais plutot un test du genre

        if(String.IsNullOrEmpty(textclevalue.Text))
        {
            cle = 0;
        }
        else
        {
            cle = int.Parse(txtclevalue.Text)
        }

        Si tu veux pouvoir mettre "NULL" dans ta clé, il faut que tu le déclares comme un int nullable

        int? cle;




        • Partager sur Facebook
        • Partager sur Twitter
          16 juillet 2019 à 11:57:30

          Salut,

          Merci beaucoup pour ton aide.

          ta solution marche bien. 

          Pour le int? cle. Quand je le mets il me dit que je peux pas convertir implicitement un int? to int. 

          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2019 à 14:09:13

            Salut,

            Non il faut que tu fasses un cast, comme ca :

            int? a=2;
            if(a!=null)
                int b=(int)a;

            Il faut simplement que tu t'assures que ton entier nullable ne soit pas nul, car sinon cela générera une exception lors du cast

            EDIT : Je suis de l'avis de LilyKianii en dessous, a mon avis tu n'as pas besoin d'utiliser de Nullable ici, mais tout dépend de ton réel besoin

            -
            Edité par earp91 16 juillet 2019 à 14:19:30

            • Partager sur Facebook
            • Partager sur Twitter
              16 juillet 2019 à 14:10:52

              Parce que si int? est null, il ne sait pas quelle valeur donner à ton int.

              int? val = null;
              
                          /////////////////////////////////////////////////
                          
              
                          // retourne la valeur ou 0
                          int val2 = val.GetValueOrDefault();
                          
              
                          /////////////////////////////////////////////////
                          
              
                          //retourne la valeur ou -1
                          int val3 = (val.HasValue) ? (int)val : -1;
              
              
                          /////////////////////////////////////////////////
                          
              
                          try
                          {
                              int val4 = (int)val;
                          }
                          catch (InvalidOperationException ioEx) { Console.WriteLine(ioEx.Message); }
              
              
                          /////////////////////////////////////////////////
              
              
                          if (!val.HasValue)
                              return;
              
                          int val5 = (int)val;
              
                          
                          /////////////////////////////////////////////////

              Tout dépend de ce que tu veux en faire. Est-ce seulement judicieux d'utiliser un Nullable plutôt que la première solution de earp91 ??

              • Partager sur Facebook
              • Partager sur Twitter

              Format de chaine de caractére incorrect

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown