sql >> Databáze >  >> RDS >> Mysql

Nelze přetypovat objekt typu 'System.DBNull' na typ 'System.Byte[]'.

Protože je možné, že pro řádek nejsou dříve uložena žádná obrazová data, musíte DBNull otestovat, než jej zkusíte použít:

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

Všimněte si, že toto DBNull test je jiný než ten, který používá Steve. IsDBNull je jazyková funkce, zatímco ta, kterou používá, je metodou DataReader objekt, proto také existují různé požadavky. Třetím způsobem by bylo srovnání s System.DbNull :

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


  1. Dokončení tohoto dotazu SELECT trvá 180 sekund

  2. chyba mysql 5.7 log-slow-queries

  3. Heroku pg:pull se nepodařilo naplnit schéma

  4. Existuje způsob, jak poskytnout uživatelsky přívětivé chybové hlášení o porušení omezení