A Double
- это тип значения, а не ссылочный тип. Таким образом, по умолчанию он не обнуляется.
Если klant.Gewicht объявлен так:
Public Property Gewicht as Double
тогда он никогда не будет "нулевым" в том, что касается компоновщика команд.
Даже прямо говорят:
d = nothing
не имеет никакого эффекта, все равно будет 0.0
Вы можете попытаться реализовать свою собственность как Nullable (Double).
Это позволит считать свойство «нулевым». Я не уверен, что CommandBuilder подхватит это автоматически, но это только начало.
Также - мне интересен ваш метод Double.TryParse
. Смысл второго аргумента состоит в том, чтобы сохранить результат синтаксического анализа (в случае успеха) в.
Ваш код может быть сокращен до:
If Not Double.TryParse(txtGewicht.Text, klant.Gewicht) Then
klant.Gewicht = ' Some Default Value
End If
Edit:
Если вы прошли через код в отладчике, вы могли заметить, что значение klant.Gewicht было 0,0 (значение по умолчанию) даже после попытки установить его в ноль.