以前に行に保存された画像データがない可能性があるため、使用する前にDBNullをテストする必要があります。
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
このDBNull
に注意してください テストは、スティーブが使用しているものとは異なります。 IsDBNull
は言語関数ですが、彼が使用しているのはDataReader
のメソッドです。 オブジェクト。これは、さまざまな要件がある理由でもあります。さらに3番目の方法は、それをSystem.DbNull
と比較することです。 :
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If