Laden...

Image SQL Server

Erstellt von liam vor 18 Jahren Letzter Beitrag vor 16 Jahren 3.021 Views
L
liam Themenstarter:in
186 Beiträge seit 2004
vor 18 Jahren
Image SQL Server

Hi,

muss in einer ASP.Net Anwendungen Links inkl. Bild anzeigen,
das mache ich bis jetzt so

<img border="0" src='<%# DataBinder.Eval(Container.DataItem,"Picture") %>'

Jetzt müsste ich aus verschieden Gründen das Bild in der Datenbank speichern und nicht nur den Pfad( als Image Typ).
Wie lese ich das Bild aus der DB aus? Habe es jetzt als Object nur wie mache ich ein Bild daraus? Und wie Verknüpfe ich das mit dem Repeater?

3.728 Beiträge seit 2005
vor 18 Jahren
Stream

Hallo,

in der Datenbank wird das Bild als Byte[] gespeichert. Folgender Code ließt die gespeicherten Bilddaten aus einer DataTable und erzeugt daraus ein Bild (Bitmap-Objekt):



// Bildrohdaten aus dem Datenbankfeld lesen
byte[] imageRawData=(byte[])table.Rows[0]["Datenbankfeldname"];

// Bildrohdaten in einem MemoryStream öffnen
MemoryStream stream=new MemoryStream(imageRawData);

// Bild aus den Rohdaten erzeugen
Bitmap myPic = new Bitmap(stream);


Genauso einfach kann man ein Bild in der Datenbank ablegen. Hier das Beispiel:



// Neuen MemoryStream öffnen
MemoryStream stream=new MemoryStream();

// Bilddaten in den MemoryStrem schreiben
myPic.Save(stream, ImageFormat.Jpeg);

// Bildrohdaten in der Datenbank ablegen
table.Rows[0]["Datenbankfeldname"] = stream.ToArray();


Die Bilddaten werden mittels Bitmap.Save in einen MemoryStream geschrieben. Dabei muss das Bildformat angegeben werden (z.B. JPEG). Mit dem MemoryStrem kannst Du die Rohdaten über die Methode ToArray als byte[] in die DataTable schreiben.

S
243 Beiträge seit 2005
vor 16 Jahren

schön und gut, nur wie mach ich dass, wenn ich mit datasets und datagrids in windows forms arbeite? ich kriegs irgendwie nicht auf die reihe ein jpg auszuwählen und auf einen sql-server in eine tabelle (spalte typ image) zu speichern.