Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C# und .NET ::  Blob-Bild aus MySQL-DB laden bzw. speichern  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Wolkenflieger
Unregistrierter




Beitrag Wolkenflieger Unregistrierter 13:12:10 02.09.2010   Titel:   Blob-Bild aus MySQL-DB laden bzw. speichern            Zitieren

Hallo,

in unserer MySQL-DB sind die Bilder zu Produkten als Blob gespeichert.

Nun würde ich gerne mit C# darauf zugreifen, um sie in einer Textbox anzeigen zu lassen - bzw. später auch neue dazu speichern.

Hier mal der Code zum Anzeigen, leider bekomme ich immer eine Fehlermeldung mit Ungültier Parameter:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MySqlCommand cmd = new MySqlCommand("SELECT Bild FROM tblartikel_bild WHERE ArtikelID = '800-437'", conn);

                DataSet ds = new DataSet();
                MySqlDataAdapter da = new MySqlDataAdapter(cmd);

                da.Fill(ds, "tblartikel_bild");
                System.Data.DataTable dt = ds.Tables["tblartikel_bild"];


                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Byte[] blobData = new Byte[0];

                     //blobData = (Byte[])ds.Tables["tblartikel_bild"].Rows[i]["blob"];
                     blobData = (Byte[])dt.Rows[i]["blob"];

                    MemoryStream msStream = new MemoryStream(blobData);
                     pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                     Bitmap bt = new Bitmap(msStream);
                    pictureBox1.Image = bt;

                    msStream.Close();

                }
                conn.Close();
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MySqlCommand cmd = new MySqlCommand("SELECT Bild FROM tblartikel_bild WHERE ArtikelID = '800-437'", conn);

DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);

da.Fill(ds, "tblartikel_bild");
System.Data.DataTable dt = ds.Tables["tblartikel_bild"];


for (int i = 0; i < dt.Rows.Count; i++)
{
Byte[] blobData = new Byte[0];

//blobData = (Byte[])ds.Tables["tblartikel_bild"].Rows[i]["blob"];
blobData = (Byte[])dt.Rows[i]["blob"];

MemoryStream msStream = new MemoryStream(blobData);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
Bitmap bt = new Bitmap(msStream);
pictureBox1.Image = bt;

msStream.Close();

}
conn.Close();
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MySqlCommand cmd = new MySqlCommand("SELECT Bild FROM tblartikel_bild WHERE ArtikelID = '800-437'", conn);

                DataSet ds = new DataSet();
                MySqlDataAdapter da = new MySqlDataAdapter(cmd);

                da.Fill(ds, "tblartikel_bild");
                System.Data.DataTable dt = ds.Tables["tblartikel_bild"];


                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Byte[] blobData = new Byte[0];

                     //blobData = (Byte[])ds.Tables["tblartikel_bild"].Rows[i]["blob"];
                     blobData = (Byte[])dt.Rows[i]["blob"];

                    MemoryStream msStream = new MemoryStream(blobData);
                     pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                     Bitmap bt = new Bitmap(msStream);
                    pictureBox1.Image = bt;

                    msStream.Close();

                }
                conn.Close();


Kann mir bitte jemand helfen bzw. sagen was ich falsch mache?!
Vielen DANK!!!
Wolkenflieger
Unregistrierter




Beitrag Wolkenflieger Unregistrierter 13:30:44 02.09.2010   Titel:              Zitieren

Ich meine natürlich in einer Picture-Box anzeigen!
Unix-Tom
Moderator

Benutzerprofil
Anmeldungsdatum: 18.07.2000
Beiträge: 10376
Beitrag Unix-Tom Moderator 14:21:41 02.09.2010   Titel:              Zitieren

Und wo kommt der Fehler?

Welche Zeile?

Kommt eine Exeption oder ein Compilerfehler.

_________________
Moderator für MFC, Linux und Datenbanken
Wolkenflieger
Unregistrierter




Beitrag Wolkenflieger Unregistrierter 14:48:45 02.09.2010   Titel:              Zitieren

Ich habe den Code nun etwas geändert, die Fehlermeldung ist aber nach wie vor die selbe:

Code:
MemoryStream stream = new MemoryStream(myData);
pictureBox1.Image = Image.FromStream(stream);
Code:
MemoryStream stream = new MemoryStream(myData);
pictureBox1.Image = Image.FromStream(stream);
Code:
MemoryStream stream = new MemoryStream(myData);
pictureBox1.Image = Image.FromStream(stream);


Sie erscheint, wenn die Zeile mit der pictureBox1 ausgeführt werden soll (Exception).
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 7252
Beitrag Dravere Moderator 15:20:20 02.09.2010   Titel:              Zitieren

Und wie wird das Bild abgespeichert? In welchem Format?

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
loki1985
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.01.2004
Beiträge: 911
Beitrag loki1985 Mitglied 15:35:22 02.09.2010   Titel:              Zitieren

wow, und immer noch fehlt die fehlermeldung....

_________________
syntax-highlighting ist für schwächlinge! echte Klingonen programmieren in notepad, und wenn sie eine IDE sehen jagen und töten sie diese.
Wolkenflieger
Unregistrierter




Beitrag Wolkenflieger Unregistrierter 20:47:10 02.09.2010   Titel:              Zitieren

Die Fehlermeldung lautet Ungültiger Parameter

Die Bilder wurden ursprünglich über Access (OLE-Objekt) in die MySQL-DB gespeichert. (blob)
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 7252
Beitrag Dravere Moderator 22:03:09 02.09.2010   Titel:              Zitieren

Wolkenflieger schrieb:
Die Bilder wurden ursprünglich über Access (OLE-Objekt) in die MySQL-DB gespeichert. (blob)

Das sagt uns überhaupt gar nichts. Blob bedeutet einfach nur eine Datenmenge. Blob kann alles sein, was in Bytes repräsentiert werden kann ... also wirklich alles. Ich frage aber, in welchem Format das Bild denn abgespeichert wurde? Bitmap? Jpeg? Png? Gif? Tiff? Oder einfach eine Reihe von ARGB Werten? Oder sonst was?

Hast du auch schon mal geprüft, ob überhaupt was sinnvolles in diesem Byte-Array drin steht?

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
Wolkenflieger
Unregistrierter




Beitrag Wolkenflieger Unregistrierter 07:28:53 03.09.2010   Titel:              Zitieren

Die Bilder wurden als jpeg gespeichert.

Im Byte-Array bekomme ich Sachen wie 301768.

Hoffe das hilft irgendwie weiter?!
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 7252
Beitrag Dravere Moderator 09:56:47 03.09.2010   Titel:              Zitieren

Wolkenflieger schrieb:
Die Bilder wurden als jpeg gespeichert.

Direkt als Jpeg-Files? Hast du schon mal probiert, statt das Jpeg per Bitmap und PictureBox anzuzeigen, es einfach wieder in ein File zu speichern und dann über dein Lieblings-Bildbetrachtungsprogramm zu öffnen? Einfach um mal zu prüfen, ob der Inhalt des Byte-Array überhaupt korrekt ist ;)

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
C/C++ Forum :: C# und .NET ::  Blob-Bild aus MySQL-DB laden bzw. speichern  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.