sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke caste objekt af typen 'System.DBNull' til typen 'System.Byte[]'.

Da det er muligt, at der ikke tidligere er gemt billeddata for en række, skal du teste for DBNull, før du prøver at bruge det:

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

Bemærk, at denne DBNull test er anderledes end den, Steve bruger. IsDBNull er en sprogfunktion, mens den han bruger er en metode til DataReader objekt, hvilket også er grunden til, at der er forskellige krav. Endnu en tredje måde ville være at sammenligne det med System.DbNull :

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


  1. tælle uden gruppe

  2. Få flere værdier i SQL Server Cursor

  3. SQL Server Failover Cluster Installation -3

  4. PostgreSQL unnest() med elementnummer