Eftersom det är möjligt att det inte finns några bilddata som tidigare sparats för en rad, måste du testa för DBNull innan du försöker använda den:
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
Observera att denna DBNull
testet är annorlunda än det som Steve använder. IsDBNull
är en språkfunktion medan den han använder är en metod för DataReader
objekt, vilket också är anledningen till att det finns olika krav. Ännu ett tredje sätt skulle vara att jämföra det med System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If