Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Image SQL Server
liam
myCSharp.de - Member



Dabei seit:
Beiträge: 187
Herkunft: Deutschland

Themenstarter:

Image SQL Server

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Rainbird
myCSharp.de - Experte

Avatar #avatar-2834.jpg


Dabei seit:
Beiträge: 3953
Herkunft: Mauer

Stream

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
spidermike
myCSharp.de - Member



Dabei seit:
Beiträge: 245

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von spidermike am .
private Nachricht | Beiträge des Benutzers