Importer une image depuit sql server vers Visual C#.net

mounir09 Messages postés 17 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 22 novembre 2013 - 26 avril 2012 à 13:38
Gradiv Messages postés 1 Date d'inscription jeudi 14 août 2014 Statut Membre Dernière intervention 14 août 2014 - 14 août 2014 à 12:18
bonjour
j un problème de conversion d'une image deja stoché dans ma base de donnée le type de variable qui stocke l'image est de type " image " mais ce code ne marche pas il me donne une exception qui dis "Impossible d'effectuer un cast d'un objet de type 'System.Byte[]' en type 'System.Drawing.Image'." voila le code :
Class1 c = new Class1(); ---------- la classe de connexion
private void button1_Click(object sender, EventArgs e)
{
c.cn.Open();
if (openFileDialog1.ShowDialog() == DialogResult.OK)---une boite de dialogue
{
pictureBox1.Load(openFileDialog1.FileName);
}
c.s = "insert into matable values('" + textBox1.Text + "','" + textBox2.Text + "','" +pictureBox1.Image + "')"; stockage de ddonnée
SqlCommand cmd = new SqlCommand(c.s, c.cn);
cmd.ExecuteNonQuery();
c.cn.Close();
}
private void button2_Click(object sender, EventArgs e)
{

c.cn.Open();
c.s = "select * from matable where id='"+textBox1.Text+"'";
SqlCommand cmd = new SqlCommand(c.s, c.cn);
c.dr = cmd.ExecuteReader();
while (c.dr.Read())
{
textBox2.Text = c.dr[1].ToString();
pictureBox1.Image =(Image)c.dr[2]; ----------l'exception----------
}
c.cn.Close();
}
merci de m'aidé et o plus vite possible SVP

7 réponses

Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
26 avril 2012 à 13:51
tu essaies de convertir des bytes en image.

Essaie ca plutot:
pictureBox1.Image =this.byteArrayToImage((byte[])c.dr[2]); 


public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}


Par contre, évites : "insert into matable values('" + textBox1.Text + "','" + textBox2.Text + "','" +pictureBox1.Image + "')";
Utilises les paramètres, sinon tu auras de l'injection sql.
0
mounir09 Messages postés 17 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 22 novembre 2013
26 avril 2012 à 13:58
il na pas pu reconnaitre MemoryStream il me donne cette erreur
Le type ou le nom d'espace de noms 'MemoryStream' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?) peut-etre qu'il faut que tu me donne le directive using que j vais utilisé et merci encor
0
mounir09 Messages postés 17 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 22 novembre 2013
26 avril 2012 à 14:02
j utilisé System. io et ça marche mais il me donne une exception au niveau de Image returnImage = Image.FromStream(ms); " Le paramètre n'est pas valide. "
0
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
26 avril 2012 à 14:03
Soit tu fais un resolve sur le nom MemoryStream (par le menu contextuel)
Soit il te manque une référence dans ton projet, auquel cas tu dois rajouter System.IO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
26 avril 2012 à 14:19
Ton image doit être de format BMP, GIF, JPEG, PNG ou TIFF.
0
mounir09 Messages postés 17 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 22 novembre 2013
26 avril 2012 à 17:37
non ça marche pas je revois le code pas mal de fois mais j'y vois aucune erreur, si tu peu me passer un autre code Stp et merci
0
Gradiv Messages postés 1 Date d'inscription jeudi 14 août 2014 Statut Membre Dernière intervention 14 août 2014
14 août 2014 à 12:18
S'il vous plait, je n'arrive toujours pas importer une image de Sql Server avec C#. Voici le code que j'utilise mais il y a ce message d'erreur: Le paramètre n'est pas valide

string chaine = "Server=Caleb-PC;user id=sa;pwd=projets;database=Essai_Gis";
SqlConnection cnn = new SqlConnection(chaine);
SqlCommand cmd = new SqlCommand("Select photo from Point where nom=1", cnn);
SqlDataReader Dtread;
cnn.Open();
Dtread = cmd.ExecuteReader();
while(Dtread.Read())
{
System.Drawing.Image image = System.Drawing.Image.FromStream( new System.IO.MemoryStream( (byte[])Dtread["photo"] ) );
pictureBox2.Image = image;
}
cnn.Dispose();
cnn.Close();

Votre aide SVP!
0