sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att casta objekt av typen 'System.DBNull' till typen 'System.Byte[]'.

Eftersom det är möjligt att det inte finns några bilddata som tidigare sparats för en rad, måste du testa för DBNull innan du försöker använda den:

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

Observera att denna DBNull testet är annorlunda än det som Steve använder. IsDBNull är en språkfunktion medan den han använder är en metod för DataReader objekt, vilket också är anledningen till att det finns olika krav. Ännu ett tredje sätt skulle vara att jämföra det med System.DbNull :

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


  1. God praxis att öppna/stänga anslutningar i en asp.net-applikation?

  2. Hur man filtrerar in ett till många förhållande med android room db

  3. Hur man bygger ett Rest API med Spring Boot med MySQL och JPA

  4. Får du veckonummer av ett datum i MS SQL Server 2005?