Como é possível que não haja dados de imagem salvos anteriormente para uma linha, você precisa testar o DBNull antes de tentar usá-lo:
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
Observe que este
DBNull
teste é diferente do que Steve está usando. IsDBNull
é uma função de linguagem enquanto a que ele está usando é um método do DataReader
objeto, razão pela qual também existem requisitos diferentes. Ainda uma terceira maneira seria compará-lo com System.DbNull
:If DBNull.Value.Equals(dr("photo")) = False Then
...
End If