Objekt vom Typ 'System.DBNull' kann nicht in 'System.Byte []' umgewandelt werden.

wenn ich versuche, ein Element in der ListView auszuwählen, das kein Bild in meiner Datenbank enthält, zeigt dieser FehlerUnable to cast object of type 'System.DBNull' to type 'System.Byte[]'. Ich habe versucht, einen Code wie @ zu setzisDBNull oderDBNull aber es ist anwendbar.

hier ist mein Code:

Private Sub LvPeople_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LvPeople.SelectedIndexChanged
        If LvPeople.SelectedItems.Count > 0 Then
            Dim connstring As String = "server = localhost; user id = root; database = db; password = root"
            Dim Sql As String = "select * from candidate where idn='" & LvPeople.SelectedItems(0).Text & "'"
            Dim conn As New MySqlConnection(connstring)
            Dim cmd As New MySqlCommand(Sql, conn)
            Dim dr As MySqlDataReader = Nothing
            conn.Open()
            dr = cmd.ExecuteReader()
            dr.Read()
            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
            conn.Close()
        End If
End Sub
End Class

die Fehlerstellen hier:

Dim imagebytes As Byte() = CType(dr("photo"), Byte())

ch habe wirklich keine Ahnung, was ich hier setzen soll. Nur ein Neuling hier.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage