Vì có thể không có dữ liệu hình ảnh nào được lưu trước đó cho một hàng, bạn cần kiểm tra DBNull trước khi cố gắng sử dụng nó:
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
Lưu ý rằng DBNull
này thử nghiệm khác với thử nghiệm Steve đang sử dụng. IsDBNull
là một hàm ngôn ngữ trong khi hàm mà anh ta đang sử dụng là một phương thức của DataReader
đối tượng, đó cũng là lý do tại sao có các yêu cầu khác nhau. Tuy nhiên, cách thứ ba là so sánh nó với System.DbNull
:
If DBNull.Value.Equals(dr("photo")) = False Then
...
End If