Ponieważ możliwe jest, że nie ma wcześniej zapisanych danych obrazu dla wiersza, musisz przetestować DBNull przed próbą jego użycia:
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
Zauważ, że ten DBNull
test jest inny niż ten, którego używa Steve. IsDBNull
jest funkcją językową, podczas gdy ta, której używa, jest metodą DataReader
obiekt, dlatego też istnieją różne wymagania. Jednak trzecim sposobem byłoby porównanie go z System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If