wie Sie ein Bild einfügen in eine Datenbank mit WPF
Ich habe eine WPF-Frage.
Ich habe 2 Textfelder und ein Bild-Steuerelement in einer WPF-Formular.
Das Bild-Steuerelement hat ein Bild in es.
Ich einfügen möchte, werden die Inhalte der einzelnen Textfelder und das Bild in die 3 separaten Spalten in einer SQL-Datenbank.
Die Textfelder Futtermittel, die in varchar-Spalten, während das Bild selbst ist geladen, die in eine Spalte mit dem Datentyp Bild.
Wie kann ich dies tun?
Dank
- Schöne Frage! 🙂
- Schlechte Frage. WPF Sachen sollten getrennt von DB-Zeug.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Art, wie wir es tun, speichern die Bilder als blobs in der Datenbank (Sie sind ziemlich kleine Bilder, 4-500k, so speichert Sie in der db sollte nicht dazu führen, keine perf-Probleme), retreive Sie als byte-arrays, und verwenden Sie dann eine
ValueConverter
konvertieren vonbyte[]
zuBitMap
.Der XAML-Code für das image-Steuerelement sieht so aus:
Eigentum binden wir in das ViewModel ist einfach ein
byte[]
wie diese;Und dann die
ValueConverte
sieht wie folgt aus;Unten einen Weg, wie zum speichern/abrufen von Bildern in einer Datenbank mit Linq to SQL in WPF.
Datenbank
Es wird empfohlen, zum speichern der Bilder in separaten Tabellen.
Erstellen Sie eine Tabelle zum speichern Ihrer Bilder,
Data access layer mit Linq 2 SQL
In Visual Studio fügen Sie ein neues Element vom Typ
LINQ to SQL Classes
(.dbml
) und können nennen esMyDataContext
.Verwenden Sie den Server-Explorer in VS, mit Ihrer Datenbank zu verbinden und ziehen Sie die Tabelle der Sie Ihre Bilder
UploadedImage
zu den.dbml
design-Bereich. Speichern Sie dieMyDataContext
Datei Strg + S.XAML
Code hinter
machen 2 Tabelle erste Tabelle enthält textbox1-text[vielleicht "name"] , " textbox2 text[vielleicht "Nachname"] und imageId[] ,eine weitere Tabelle enthält die Datei-id ,filebytes-und Datei-Erweiterungen.beim speichern der oben genannten Informationen mit Bild. nehmen bytes des Bildes und der Endung speichern. wenn man das Bild inorder, um zu zeigen, irgendwo,Sie übersetzen byte-Datei, die über seine Verlängerung
http://www.beansoftware.com/ASP.NET-Tutorials/Save-Read-Image-Database.aspx
hier ASP.NET aber die Kontrollen sind in der Regel gleich bei .net.(textbox.Text usw.)
Ich bin mir nicht sicher, wie die Bild-Feld funktioniert, jedoch könnte dies nützlich sein:
Bild UriSource und Datenbindung
In anderen Worten, Sie verwenden müssen, um einen Wert converter zur Konvertierung zu/von Ihrem db-format, um Ihre Präsentation (WPF) - format.
Wenn Sie behandeln möchten BitmapSource Bilder, einschließlich der Fälle, in denen die Bilder " Quellen sind nicht die Dateien, dann empfehle ich kopieren Sie den Pixel-buffer in ein array, die Speicherung der array + pixelformat und Abmessungen Metadaten (array-und Metadaten können verwendet werden, um neu das Bild).