Toon posts:

[C# MySQL] JPG naar BLOB probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben al een tijdje bezig om het voor elkaar te krijgen om een jpg bestand in een blob veld van mysql te krijgen doormiddel van c#. Ik maak gebruik van MySQLDriverCS om verbinding te maken met de database dit werkt allemaal perfect. Ik kan wel 'normale' queries uitvoeren, maar binary data lukt niet.

Het is me wel eerder gelukt met Access maar wilde toch met MySQL aan de gang.

edit:

Het is misschien handig om te weten dat ik MySQL 5 gebrui


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Open connectie
MySQLDriverCS.MySQLConnectionString cstring = new MySQLDriverCS.MySQLConnectionString("localhost", "testdb", "root", ""); 
MySQLDriverCS.MySQLConnection con = new MySQLDriverCS.MySQLConnection(cstring.AsString);
con.Open();         

//Lees jpg
FileStream fs = new FileStream(@"c:\test.jpg", FileMode.Open);
byte[] buffer = new byte[fs.Length];  
fs.Read(buffer,0,buffer.Length);  
                
//Create query
MySQLDriverCS.MySQLCommand cmd = new MySQLDriverCS.MySQLCommand("INSERT INTO pics (PicId, Name, Pic) VALUES ('', 'test', @picture)", con);
                
//Create parameter
MySQLDriverCS.MySQLParameter prm = new MySQLDriverCS.MySQLParameter("@picture", MySQLDriverCS.enum_field_types.FIELD_TYPE_LONG_BLOB);
prm.Value = buffer;
cmd.Parameters.Add(test);
            
//Voer query uit
cmd.ExecuteNonQuery();

//Sluit connectie
con.Close();


Ik gebruik dus de bovenstaande code. Kan iemand me vertellen wat ik fout (of juist helemaal niet) doe

[ Voor 14% gewijzigd door Verwijderd op 11-04-2005 19:24 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:56

gorgi_19

Kruimeltjes zijn weer op :9

En wat lukt er niet? :) Welke foutmelding krijg je? Waar gaat het fout? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
In het blobveld word de binary code van "System.Byte[]" geïnsert

BTW op regel 23 con.open() ----> con.close()
edit:
Regel 23 is verandert

[ Voor 20% gewijzigd door Verwijderd op 11-04-2005 19:06 ]


  • D4Skunk
  • Registratie: Juni 2003
  • Laatst online: 20-10-2025

D4Skunk

Kind of Blue


Verwijderd

Topicstarter
mmmm I will give it a try tommorow.

Ik zoek eigenlijk nooit bij google op nieuwsgroepen misschien toch maar eens gaan doen :9 8)7 _/-\o_

edit:

Ik zit de bovenstaande link nog even door te lezen, maar dit is net het omgekeerde dan wat ik wil. Hier haal je namelijk data op uit de database en maak je er vervolgens een file van.
Ik wil een jpg bestand omzetten naar blob en saven in de database.

[ Voor 50% gewijzigd door Verwijderd op 11-04-2005 23:19 ]


  • D4Skunk
  • Registratie: Juni 2003
  • Laatst online: 20-10-2025

D4Skunk

Kind of Blue

Ok, nieuwe poging...

Kan dit je misschien helpen ?

Verwijderd

Topicstarter
Nee deze had ik ook gevonden maar dit werkt dus ook niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
try
{   
MySQLDriverCS.MySQLConnectionString cstring = new MySQLDriverCS.MySQLConnectionString("localhost", "dbname", "root", ""); 
MySQLDriverCS.MySQLConnection con = new MySQLDriverCS.MySQLConnection(cstring.AsString);

MySQLDriverCS.MySQLCommand com = new MySQLDriverCS.MySQLCommand("INSERT INTO pics (PicId,Name,Pic) VALUES ('', ?name, ?picarray)", con);
byte[] picarray = new byte[1000];
picarray.Initialize();
com.Parameters.Add("?picarray", picarray);
com.Parameters.Add("?name", "Test");
con.Open();
com.ExecuteNonQuery();
con.Close();
}
catch(Exception ee)
{
Console.WriteLine( ee.ToString() );
}


het resultaat in de database is
Name (varchar(255)) = Test
Pic (LONGBLOB) = System.Byte[]
Pagina: 1