F.: Image aus ASP.net Page in eine Datenbank speichern......?

14/06/2008 - 21:22 von Bernd W.Viehmann | Report spam
Hallo,

ich habe folgendes Problem:

Innerhalb einer ASP.Net Seite habe ich ein Image-Webcontrol.Die
Bilder,die in dem Control dargestellt werden werden über ein
FileUpload-Control hoch geladen, dargestellt und als File auf dem Server
gespeichert.

Funktioniert prima.

Jetzt möchte ich die Grafiken aber nicht mehr einfach per File ablegen
sondern in eine SQL-Express Datenbank ablegen,und zwar in eine Spalte
mit dem Datentyp Image.

Mein Problem: Dem Image-Webcontrol fehlen Funktionalitàten, die zum
System.Drawing.Image dazugehören.

Bisher weiss ich, das man einen Memorystream mit den Rohdaten des Images
erzeugen kann, und diesen dann in die Datenbank schreibt. Zumindest
mit der Image Klasse aus System.Drwawing.

Also like this:


MemoryStream mstr = new MemoryStream();
pictureBox1.Image.Save(mstr, pictureBox1.Image.RawFormat);
byte[] arrImage = mstr.GetBuffer();
string cmd = "insert into Picture (PictureName, Picture) values (@PName,
@Pic)";

SqlConnection c = new SqlConnection(c_string);
SqlCommand comm = new SqlCommand(cmd,c);
comm.Parameters.Add( new SqlParameter("@PName",
SqlDbType.VarChar,40)).Value = name;
comm.Parameters.Add( new SqlParameter("@Pic",SqlDbType.Image)).Value =
arrImage;

Allersingsklappt das nicht anscheinend nicht so einfach mit dem
Image-Webcontrol.

Kann mir jemand helfen und einen Tipp geben wie ich die Rohdaten im
richtigen Format aus dem Image-Webcontrol auslesen (casten) kann um sie
dann in die Datenbank zu schreiben?

Danke für jede Hilfe und Grüße

Bernd
 

Lesen sie die antworten

#1 Thomas Bandt
14/06/2008 - 22:42 | Warnen spam
Hallo,

Bernd W.Viehmann schrieb:
Jetzt möchte ich die Grafiken aber nicht mehr einfach per File ablegen
sondern in eine SQL-Express Datenbank ablegen,und zwar in eine Spalte
mit dem Datentyp Image.



warum? Das ist wesentlich unperformanter als der direkte
Abruf vom Filesystem, das sollte man wenn möglich vermeiden.

Mein Problem: Dem Image-Webcontrol fehlen Funktionalitàten, die zum
System.Drawing.Image dazugehören.



Das sind auch zwei verschiedene Paar Schuhe.


Kann mir jemand helfen und einen Tipp geben wie ich die Rohdaten im
richtigen Format aus dem Image-Webcontrol auslesen (casten) kann um sie
dann in die Datenbank zu schreiben?



Speichern:

Datei hochladen, Blob speichern.

Anzeigen:

ImageHandler.ashx erstellen, Blob auslesen, Bitmap
erstellen und zum Client streamen.

Aufruf via:

<img src="ImageHandler.ashx" /> in der Website.

Google ist dein Freund, z.B.:

http://www.beansoftware.com/ASP.NET...abase.aspx

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Beratung, Entwicklung
http://www.dotnetjob.de - .NET-Stellenbörse
https://www.xing.com/net/asp.net/ - ASP.NET bei XING
http://blog.thomasbandt.de - Thomas goes .NET

Ähnliche fragen