Wat doe ik niet goed in berekening

Status
Niet open voor verdere reacties.

old Hippy

Gebruiker
Lid geworden
24 mei 2008
Berichten
911
Hallo beste helpers

ik bereken een totaal in een datatafel op de volgende manier.

Code:
 Private Sub FacturenBindingSource_PositionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles FacturenBindingSource.PositionChanged, FacturenBindingSource.CurrentChanged
        If Me.FacturenBindingSource.Position > -1 Then
            Dim totaal As Double = 0
            For Each row As DataRowView In Me.FacturenBindingSource.List
                totaal += row!totaal
            Next
            Me.TotaalTextBoxFac.Text = Format(totaal, "c")
        Else
            Me.TotaalTextBoxFac.Text = ""
        End If


Maar als ik een nieuwe gegevens in wil voeren gaat het mis.
en krijg ik de volgen de melding.
Operator + is niet gedefinieerd voor type Double en type DBNull.
hoe los ik dit op???????
 
Je probeert een 'Nothing' (DBNull) vanuit je database op te tellen met een double. Daarom geeft ie een error. Misschien vanwege de -1 positie ofzo.
 
Beste Pizara

Sorry voor de laate reactie maar moest voor een paar dagen naar frankrijk.

ik vind het gek dat als ik het programma installeer deze fout niet komt?????
 
waarschijnlijk helpt dit wel :

totaal += cDbl(row!totaal)

Je kan beter gewoon geen (lege) String en een Double bij elkaar optellen. Dit soort errors moet je tijdens het programmeren al opsporen om onverwachte run-time errors te voorkomen. Misschien doet ie t nu tijdens de release build wel, maar ik zou er wel voorzichtig mee omgaan.

groet
 
Beste Pizara bedankt voor de reactie

Dit hielp dus ook niet hoe voorkom ik dat hij de lege String mee teld.
en alleen als hij is ingevuld.
 
Als ik weet wat er in die DataRow staat kan ik de error terugredeneren.
Getallen als Strings ofzo?
 
Beste Pizara

Hier een Afbeelding
mischien helpt dit je met wat ik doe.
 
Laatst bewerkt:
haal As DataRowView eens weg in die for-each loop.

volgens mij zit daar bij jouw het probleem..
Want als ik een bindingsource vul met decimalen , en die optel in een for-each doet ie t prima.

212bl1j.jpg
 
OK Pizara

Dit ga ik uit proberen
door jou ben ik ook op een andere oplossing gekomen.
bij mij teld hij ook netjes op de fout ontstond bij add new dus een lege regel in de database.

ik heb de DefaultValue van de Betreffende Raw op 0,00 gezet
dus bij add New is deze niet meer null is dit een Acceptabele oplossing??
 
Dat kan ik zo niet zeggen , maar ik denk het wel ja.

tussen-twee-haakjes , je doet veel zaken in West-Friesland. Woon je er in de buurt?
 
Ik weet niet of dit daadwerkelijk gegevens van klanten zijn, maar als dat zo is, kan ik me voorstellen dat zij liever niet willen dat je hun adres-gegevens zo prijsgeeft.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan