Mysql
 sql >> база данни >  >> RDS >> Mysql

Не може да се прехвърли обект от тип 'System.DBNull' към тип 'System.Byte[]'.

Тъй като е възможно да няма данни за изображения, запазени преди това за ред, трябва да тествате за DBNull, преди да се опитате да го използвате:

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

Имайте предвид, че това DBNull тестът е различен от този, който Стив използва. IsDBNull е езикова функция, докато тази, която той използва, е метод на DataReader обект, поради което има и различни изисквания. И все пак трети начин би бил да го сравним с System.DbNull :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на BLOB изображение от Mysql база данни в динамичен div в html

  2. Най-добри практики за съхраняване на информация за кредитна карта в базата данни

  3. Надстройте MySQL до MariaDB 10 (Част 2 – Надстройте MariaDB/MySQL 5.5 до версия 10.0)

  4. Mysql - Съхранена процедура OUT променлива връща нула

  5. Предаване на параметри към JDBC PreparedStatement