Тъй като е възможно да няма данни за изображения, запазени преди това за ред, трябва да тествате за 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
обект, поради което има и различни изисквания. И все пак трети начин би бил да го сравним с System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If