Dado que es posible que no haya datos de imagen guardados previamente para una fila, debe probar DBNull antes de intentar usarlo:
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
Tenga en cuenta que este DBNull
test es diferente al que está usando Steve. IsDBNull
es una función de lenguaje mientras que la que está usando es un método del DataReader
objeto, razón por la cual también existen diferentes requisitos. Sin embargo, una tercera forma sería compararlo con System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If