Ich versuche, Bilder mit SQLite mit einer App auf WinForm mit CF zu speichern und zu laden. Ich habe einen Weg gefunden, ein Bild in der db zu speichern, aber ich weiß nicht, ob es richtig ist, weil ich keine Möglichkeit gefunden habe, das in der db gespeicherte Bild zu laden.
Ich habe einen Code, um mein Bild in ein Base64 zu konvertieren:
%Vor%Dies ist mein Code, um das Bild in der db zu speichern:
%Vor%Ich habe einen Code, um das Gegenteil von ImageToBase64 zu machen, aber zuerst muss ich das Bild von der db laden. Irgendeine Idee, das zu tun?
BEARBEITEN Ich versuche den Blob zu verwenden, um das Bild jetzt zu speichern, wie Charlie es vorgeschlagen hat. Ich habe diesen Code ausprobiert:
%Vor%Aber wenn ich ExcecuteNonQuery () erfasse es einen Fehler von InvalidCastException .
Irgendwelche vorschlagen?
LÖSUNG Dieser Code speichert ein Bild in der Datenbank und lädt dann das Bild, um es in einem Bildfeld anzuzeigen:
%Vor%Danke für Ihre Hilfe!
Um das Bild aus der Datenbank zu laden, verwenden Sie eine SQL select
-Anweisung, um die Daten zurück zu bekommen, genau wie bei jeder anderen Art von Daten. Das Base64-codierte Bild wird als Zeichenfolge in der SQLite-Datenbank gespeichert. Sie werden es also als Zeichenfolge abrufen, so als ob Sie eine andere Zeichenfolge (z. B. Ihren Namen) in der Datenbank gespeichert hätten.
Wie bei Ihrem Speichercode wird in meinem Beispielcode zum Laden des Bilds nur ein in der Tabelle gespeichertes Bild verwendet. Um mehr als ein Bild zu laden und zu speichern, müssten Sie ein ID-Feld in die Tabelle einfügen und dann eine where
-Klausel für Ihre SQL select
-Anweisung verwenden.
Ich bin mir nicht sicher, ob ich persönlich das Bild als Base64-codierte Zeichenfolge speichern würde. Die Zeichenfolgendarstellung des Bildes wird viel größer als die binäre Darstellung sein. SQLite unterstützt den BLOB-Datentyp , also würde ich das verwenden.
Tags und Links c# sqlite image compact-framework