Fehler

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Hi mit diesem Codeschnipsel habe ich einen Fehler.
    wie macht man es richtig?

    Spoiler anzeigen

    Quellcode

    1. Dim VerfuegbareZeit As Double
    2. VerfuegbareZeit = CDbl(TB_Verfuegbarezeit.Text)
    3. Dim Restzeit As Double
    4. Dim Dauer As Integer = 0
    5. If Not IsDBNull(CInt(CMB_Dauer.Text).ToString) Then
    6. Dauer = CInt(CMB_Dauer.Text)
    7. End If
    8. Restzeit = VerfuegbareZeit - Dauer
    9. TB_Restzeit.Text = Restzeit.ToString
    Bilder
    • Unbenannt.JPG

      51,95 kB, 743×229, 100 mal angesehen
    Steht doch da: Ungültige Konvertierung von der Zeichenfolge in Typ Integer.

    In deinem Text steht was drin, was sich nicht in einen Integer-Typ konvertieren lässt. Sinnvollerweise solltest du dafür Integer.TryParse() verwenden.

    Ganz allgemein scheint mir dein Code aber sehr gewöhnungsbedürftig zu sein, insbesondere die betreffende Zeile. Wenn der Text sich in einen Integer wandeln und daraus dann wieder ein String (ToString) bilden lässt, kann das Ergebnis gar nicht "DBNull" werden. DBNull sind eher Variableninhalte, die aus einer Datenbank stammen können und zwar nicht "Nothing" sind, aber mit dem Objekt "DBNull" kennzeichnen, dass das Feld in der Datenbank "leer" war.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    menorca schrieb:

    VB.NET-Quellcode

    1. If Not IsDBNull(CInt(CMB_Dauer.Text).ToString) Then
    Der Inhalt von CMB_Dauer.Text ist String.Empty, nicht aber ein numerischer Wert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!