sql >> Database >  >> RDS >> Mysql

Kan object van het type 'System.DBNull' niet casten om 'System.Byte[]' te typen.

Aangezien het mogelijk is dat er nog geen afbeeldingsgegevens zijn opgeslagen voor een rij, moet u testen op DBNull voordat u het probeert te gebruiken:

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

Merk op dat deze DBNull test is anders dan degene die Steve gebruikt. IsDBNull is een taalfunctie terwijl degene die hij gebruikt een methode is van de DataReader object, daarom zijn er ook andere eisen. Een derde manier zou zijn om het te vergelijken met System.DbNull :

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


  1. Rijdoelen, deel 3:Anti-joins

  2. Android ListView:hoe databasequery's in bindView() vermijden? Moet een tot veel relatiegegevens ophalen

  3. Script time-out doorgeven bij database-import

  4. Inleiding tot SQL-joins