2011-01-12 9 views
0

Ich mache einige Fehler Debuggen die Fehler auf unserer Website auf ein Minimum zu bekommen versucht, und es scheint ein Fehler zu sein, das ist Aufspringen ziemlich vielFehler Debugging - Konvertierung von String Double

Die Konvertierung von String "" in "Double" ist nicht gültig.

Ich kann dieses Problem nicht replizieren, aber ich kann sehen, dass es passiert.

Ich habe in einer der Seiten durch den Code suchen und schlenderte über dieses

Dim varWeek As String 

If varWeek < 10 Then 
    'Do something' 
End If 

Könnte dies das Problem verursachen, wie es zu sehen versucht, wenn ein String weniger als 10 die eine ist Integer?

Wie ich schon sagte, da ich diesen Fehler nicht sehen kann, so ändert dies zu einem Integer nichts an meinem System.

Danke.

Antwort

3

Ich kann keinen Grund sehen, warum diese Umwandlung zu einem Doppel führen sollte. Höchstwahrscheinlich haben Sie eine Operation, bei der ein Double passen sollte.

Im Allgemeinen würde ich Konvertierungen, bevor Operationen verwenden, z.B .:

If Convert.ToInt32(varWeek) < 10 Then 

und so weiter.

0

Wenn Ihre Nachricht die Nachricht der Ausnahme ist, handelt es sich um einen Konvertierungsfehler. Wenn Sie eine leere Zeichenfolge (Ihr "") an Convert.ToDouble, Double.Parse (in C#) übergeben, wird eine FormatException gestartet.

Sie können dies vermeiden mit Double.TryParse.

1

Ich denke, Sie haben sich selbst geantwortet.

Versuchen Sie, diese String-Variable in eine ganze Zahl zu konvertieren. Verwenden Sie zum Beispiel:

Dim varWeek As String 

If Val(varWeek) < 10 Then 
'Do something 
End If 

Ich bin mir nicht sicher, ob Sie bereits versucht haben, aber haben Sie die Try Catch-Anweisung verwendet? Auf diese Weise können Sie sehen, woher der Fehler kommt.

Debug auf Kumpel;)

+0

Ich bin nicht wirklich sicher, wenn Fang-Anweisungen zu verwenden Versuchen - Ich benutze sie für, wenn ich Anfragen hauptsächlich ausgeführt wird. –

1

Der Fehler verursacht wird, weil die Zeichenfolge leer ist „“.

Sie sollten eine Art Fehler bei der Überprüfung der Zeichenfolge durchführen, bevor Sie sie mit einer Zahl vergleichen.

Man könnte so etwas tun:

Dim varWeek As String 
If IsNumeric(varWeek) 
    If varWeek < 10 Then 
     Do something 
    End If 
Else 
    Handle your error here, probably feed back to the user that their input is invalid 
End If 
Verwandte Themen