Protože je možné, že pro řádek nejsou dříve uložena žádná obrazová data, musíte DBNull otestovat, než jej zkusíte použít:
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
Všimněte si, že toto DBNull
test je jiný než ten, který používá Steve. IsDBNull
je jazyková funkce, zatímco ta, kterou používá, je metodou DataReader
objekt, proto také existují různé požadavky. Třetím způsobem by bylo srovnání s System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If