---
title: "Nullable i VB.NET"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/182633-nullable-i-vb-net"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "clarkbones"
published: "2010-03-01T23:17:29.000Z"
updated: "2010-03-03T07:02:11.000Z"
replies: 3
views: 816
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/182633-nullable-i-vb-net"
---

# Nullable i VB.NET

## #1 — clarkbones, 2010-03-01T23:17Z

Hej!

Länge sedan man pysslade med VB.NET och är därmed lost!

Jag har ett fält i en datatable som kan vara NULL eller int

Jag testar följande förenklade kod

```
 Dim i As Nullable(Of Integer) = dt.Rows(0).Item("Code")
```

...men får "specified cast is not valid". 

Detta "borde" väl funka?

Permalänk: https://www.webforum.nu/p/182633

## #2 — rhdf, 2010-03-02T15:02Z

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"))
```

Permalänk: https://www.webforum.nu/p/2227181

## #3 — clarkbones, 2010-03-02T19:52Z

OK, trodde man skulle komma runt dessa If-satser med nullable datatyper, men icke så.

Permalänk: https://www.webforum.nu/p/2227207

## #4 — Compusa, 2010-03-03T07:02Z

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"))
```

Permalänk: https://www.webforum.nu/p/2227260

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/182633-nullable-i-vb-net
