IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

La conversion de la chaîne "B" en type 'Double' n'est pas valide.


Sujet :

.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 10
    Points
    10
    Par défaut La conversion de la chaîne "B" en type 'Double' n'est pas valide.
    Bonjour,

    J'ai commencé à migrer un programme codé sous VB6/VBE vers .NET.
    Mais j'ai quelques petits soucis lors de l'execution du programme. En effet, il ne me mets aucune erreurs mais seulement 1 avertissement.
    Or en regardant le message, je ne comprends pas d'ou l'avertissement peut bien provenir.
    Donc j'obtiens ce message :
    La conversion de la chaîne "B" en type 'Double' n'est pas valide.
    L'exception System.InvalidCastException n'a pas été gérée
    Message="La conversion de la chaîne \"B\" en type 'Double' n'est pas valide."
    Source="Microsoft.VisualBasic"
    StackTrace:
    à Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
    à Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value)
    à tradUQ.TraceGraphiqueUQ.TraceDiagUQ(Int16& k, String& N1, String& N2, Int16& L2, String& N3, Int16& L4, String& N4)
    à tradUQ.TraceGraphiqueUQ.TraceGraphUQ()
    à tradUQ.frmMain.btGO_Click(Object eventSender, EventArgs eventArgs)
    à System.Windows.Forms.Control.OnClick(EventArgs e)
    à System.Windows.Forms.Button.OnClick(EventArgs e)
    à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    à System.Windows.Forms.Control.WndProc(Message& m)
    à System.Windows.Forms.ButtonBase.WndProc(Message& m)
    à System.Windows.Forms.Button.WndProc(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    à System.Windows.Forms.Application.Run(Form mainForm)
    à tradUQ.frmMain.Main()
    à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    à System.Threading.ThreadHelper.ThreadStart()
    Mais je ne sais pas comment corriger cette erreur car dans aucun cas je convertis la chaine "B" en double ...

    Les seuls cas où j'utilise la chaine "B" c'est pour définir mes points :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     If CC(j, l + 1) = "B" And cpt = 1 Then
                                cpt = cpt + 1
                                ABC(j) = 0
                                LNH(j, l + 1) = "N"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Case "B"
     
                         Xpoint = Val(UT(k, i)) - ((Umax(k) - Umin(k)) / 40)
                         Ypoint = Val(QT(k, i)) + ((Qmax(k) - Qmin(k)) / 50)
    donc si quelqu'un a eu le même probleme que moi, pouvez vous m'aider ?
    Car cela fait 1 jour où je bloque là dessus ...

    Merci beaucoup.

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Que fait la fonction CC ?

    Si tu mets à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CC(j, l + 1).Equals("B", StringComparison.CurrentCultureIgnoreCase)
    ça te met toujours un warning ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    CC est un tableau déclaré comme ça : et pour obtenir mes CC je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    'permet d obtenir les valeurs CC
                If NBCC(j) > "0" Then
                    tmp = Split(maligne(i), " ")
                    For l = 0 To UBound(tmp) Step 1
                        CC(j, l + 1) = tmp(l)
                        If CDbl(NBCC(j)) = 3 Then
                            If CC(j, l + 1) = "A" Then
                                cpt = cpt + 1
                                ABC(j) = 0
                                LNH(j, l + 1) = "L"
     
                            End If
                            If CC(j, l + 1) = "B" And cpt = 1 Then
                                cpt = cpt + 1
                                ABC(j) = 0
                                LNH(j, l + 1) = "N"
     
     
                            End If
                            If CC(j, l + 1) = "C" And cpt = 2 Then
                                cpt = 0
                                ABC(j) = 1
                                Cprime(j) = 1
                                LNH(j, l + 1) = "H"
     
                            End If
    Mais je n'arrive même pas à executer mon programme en mode pas à pas pour voir où ça bug ...

    *Edit* Même en mettant votre proposition, j'obtiens la même chose.

  4. #4
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Et avec :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    CC(j, l + 1).ToString().Equals("B", StringComparison.CurrentCultureIgnoreCase)

    C'est surprenant, tu devrais avoir le même bug pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CC(j, l + 1) = "A" Then
    En VB.Net, "=" c'est bien aussi utilisé pour la comparaison hein? xD

    En débuggant pas à pas, tu devrais quand même réussir à voir à quel moment l’exception est lancée.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Je viens d'essayer ta solution et ça ne marche toujours pas.
    Hmmm ben je pense que ça ne change pas en .NET pour le "=" car avec Excel2000 le programme marche parfaitement mais là je le migre vers Excel 2010 et plus rien ne marche ...
    De plus le mode pas à pas ne fonctionne pas ... quand j’appuie sur F8, la fenetre principale s'ouvre directement ...
    Donc je ne sais même pas d'où elle peut sortir cette erreur

  6. #6
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    C'est la migration vers VB.Net ou la migration vers Office 2010 qui pose problème ? J'ai l'impression qu'il y a confusion...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Enfaite, le programme à déjà été migrer vers VB.NET mais là l'entreprise va déployer office2010 pour l'ensemble de l'établissement.
    Donc là, mon job c'est de rendre le logiciel compatible avec Excel2010...
    Sachant que le logiciel développé pour Excel2000 fonctionne pour Excel2010 mais il trace tout et n'importe quoi.
    De ce constat j'ai modifié les fonctions de traçage et depuis ben j'ai cette erreur qui revient à chaque fois sans savoir d'où elle peut bien provenir.
    J’espère avoir été clair lol

Discussions similaires

  1. [Débutant] Erreur La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par dragondu83 dans le forum VB.NET
    Réponses: 5
    Dernier message: 24/07/2014, 20h06
  2. [Débutant] La conversion de la chaîne "" en type 'Double' n'est pas valide.
    Par amine_maximus dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/06/2012, 23h11
  3. Réponses: 12
    Dernier message: 07/02/2011, 23h01
  4. Réponses: 16
    Dernier message: 06/06/2007, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo