Nullable i VB.NET
3 svar · 810 visningar · startad av clarkbones
jag satt själv o bråkade med nullable(of integer) inatt, visserligen så modifierade jag koden och bytte integer mot en enum, fast det var av helt andra orsaker
Det du får från din datatable är troligen en "dbNull" och den går inte att casta till en "nullable"
så du får troligen göra en koll, först om det är dbnull
Dim i As Nullable(Of Integer)
If IsDBNull(dt.Rows(0).Item("Code")) Then
i = Nothing
Else
i =dt.Rows(0).Item("Code")
End If
möjligen möjligtvis går det lika bra med
Dim i As Nullable(Of Integer) = IIf(IsDBNull(dt.Rows(0).Item("Code")), Nothing, dt.Rows(0).Item("Code"))
OK, trodde man skulle komma runt dessa If-satser med nullable datatyper, men icke så.
Det är även att föredra att använda ternary operatorn istället för IIf, då IIf kan kasta ett 'null pointer exception' om dt.Rows(0).Item("Code") evalueras till nothing.
Dim i As Nullable(Of Integer) = If(IsDBNull(dt.Rows(0).Item("Code")), Nothing, _
dt.Rows(0).Item("Code"))