Poiché è possibile che non ci siano dati immagine precedentemente salvati per una riga, è necessario verificare DBNull prima di provare a utilizzarlo:
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
Nota che questo DBNull
test è diverso da quello utilizzato da Steve. IsDBNull
è una funzione del linguaggio mentre quella che sta usando è un metodo del DataReader
oggetto, motivo per cui ci sono requisiti diversi. Ancora un terzo modo sarebbe confrontarlo con System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If