Da es möglich ist, dass zuvor keine Bilddaten für eine Zeile gespeichert wurden, müssen Sie DBNull testen, bevor Sie versuchen, es zu verwenden:
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
Beachten Sie, dass diese DBNull
Test unterscheidet sich von dem, den Steve verwendet. IsDBNull
ist eine Sprachfunktion, während er eine Methode des DataReader
verwendet Objekt, weshalb es auch unterschiedliche Anforderungen gibt. Ein dritter Weg wäre jedoch, es mit System.DbNull
zu vergleichen :
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If