Da det er muligt, at der ikke tidligere er gemt billeddata for en række, skal du teste for DBNull, før du prøver at bruge det:
If IsDBNull(dr("photo")) = False Then
Dim imagebytes As Byte() = CType(dr("photo"), Byte())
Using ms As New IO.MemoryStream(imagebytes)
PictureBox1.Image = Image.FromStream(ms)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Using
Else
' maybe display a "no Photo Available" stock image
End If
Bemærk, at denne DBNull
test er anderledes end den, Steve bruger. IsDBNull
er en sprogfunktion, mens den han bruger er en metode til DataReader
objekt, hvilket også er grunden til, at der er forskellige krav. Endnu en tredje måde ville være at sammenligne det med System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If