Unable to cast object of type 'System.String' to type 'System.Byte[]'
Ich bin speichern Bild in einer Datenbank in einer wpf-Anwendung. aber wenn ich es wiederherstellen es gibt mir die type-cast Fehler.
Unable to cast object of type 'System.String' to type 'System.Byte[]'.
ich bin mit dem folgenden code zu Typ-cast
byte[] data = (byte[])ds.Tables[0].Rows[0]["ProjectIcons"];
- Was ist der Typ von Ihr "ProjectIcons" in der Datenbank?
- Gut vermutlich ist der Typ der
ProjectItems
Spalte istString
stattbyte[]
... Entweder Ihre Datenbank mit der falschen Spalte geben, oder Sie verwenden den falschen Typ beim abrufen es. Wir brauchen mehr Kontext. - varBinary(max)
- werfen Sie einen Blick auf diese: stackoverflow.com/questions/4900605/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um die Konvertierung von string zu byte[], müssen Sie das encoding anzugeben. UTF-8 ist, wäre es:
Beachten Sie, dass das gleiche Zeichen dargestellt werden kann durch die unterschiedliche Anzahl und Wert der bytes, also je nachdem, was Sie brauchen es für, Sie müssen, um das richtige encoding.
ds.Tables[0].Rows[0]["ProjectIcons"]
ist wieder ein string ist, verwenden Sie die Visual Studio-Inspektor und Haltepunkte zu konsultieren, der eigentliche Typ und dem Wert des datatable-Feld. Auch, was ist der Datenbanktyp des Feldes?Versuchen, diese