sql >> Base de Datos >  >> RDS >> Mysql

No se puede convertir el objeto del tipo 'System.DBNull' al tipo 'System.Byte[]'.

Dado que es posible que no haya datos de imagen guardados previamente para una fila, debe probar DBNull antes de intentar usarlo:

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

Tenga en cuenta que este DBNull test es diferente al que está usando Steve. IsDBNull es una función de lenguaje mientras que la que está usando es un método del DataReader objeto, razón por la cual también existen diferentes requisitos. Sin embargo, una tercera forma sería compararlo con System.DbNull :

If DBNull.Value.Equals(dr("photo")) = False Then
    ...
End If