Bonjour,
En fait je veux que mon fileupload stocke une image dans la base de donnés, alors quel type dois-je attribuer à mon champ image et comment le faire stocker dans la BD sous c#.
Merci pour votre aide.
Bonjour,
En fait je veux que mon fileupload stocke une image dans la base de donnés, alors quel type dois-je attribuer à mon champ image et comment le faire stocker dans la BD sous c#.
Merci pour votre aide.
salut,
pour stocker une image en base, tu as, dans sql server, un type de champ image
après, il faut que tu récupères le contenu du fichier, et que tu insères ton image dans la base, genre comme ca :
Et dans l'autre sens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int imagelen = Upload.PostedFile.ContentLength; byte[] picbyte = new byte[imagelen]; Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen); SqlCommand cmd = new SqlCommand ("INSERT INTO Table " + "(Name, ImageContent) VALUES (@imageName, @imageContent)", conn); cmd.Parameters.Add ("@imageName", lblImageID.Text); cmd.Parameters.Add ("@imageContent", picbyte); cmd.ExecuteNonQuery ();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 MemoryStream mstream = new MemoryStream (); SqlCommand cmd = new SqlCommand ("SELECT ImageContent FROMTable " + " WHERE Name='Toto' ", conn); byte[] image = (byte[]) command.ExecuteScalar (); mstream.Write (image, 0, image.Length); Bitmap bitmap = new Bitmap (stream); Response.ContentType = "image/gif"; bitmap.Save (Response.OutputStream, ImageFormat.Gif); mstream.Close();
Merci pour ta réponse, en fait j ai utilisé le code que tu m a fourni et il a stocké l image sous forme <Binary data> que je vois dans la table mais quand je veux afficher la liste des images dans un datalist il me met devant le champ logo le message "System.Byte[]"
En fait j utilise un dataset pour établir la liaison et insérer mes données alors je vais pas utiliser sqlcommand, voici mon code d ajout d une annone qui contiendra une image qui est le logo:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 public void Button1_Click(object sender, EventArgs e) { DataSet1 ds; ds = new DataSet1(); DataSet1.OffresEmploiRow r; r = ds.OffresEmploi.NewOffresEmploiRow(); DataSet1.RecruteurRow x; x = ds.Recruteur.NewRecruteurRow(); r.idrecruteur = x.idrecruteur; r.datePublication = txt_date.Text; r.nomposte = txt_poste.Text; r.nomentreprise = txt_annonceur.Text; r.lieu = txt_lieu.Text; //stocker logo du recruteur int imagelen = FileUpload1.PostedFile.ContentLength; byte[] picbyte = new byte[imagelen]; r.logoRecruteur = picbyte; FileUpload1.PostedFile.InputStream.Read(picbyte, 0, imagelen); //jsq ici ça marche //probleme MemoryStream mstream = new MemoryStream(); byte[] image = (byte[])command.ExecuteScalar(); mstream.Write(image, 0, image.Length); Bitmap bitmap = new Bitmap(stream); Response.ContentType = "image/jpg"; bitmap.Save(Response.OutputStream, ImageFormat.jpg); mstream.Close(); r.mailcontact = mail_recruteur.Text; r.DescriptionPoste = TextArea1.Value; r.DescriptionEntreprise = Textarea2.Value; r.ProfilRecherche = Textarea3.Value; r.Objectifs = Textarea4.Value; r.Question1 = txt_ques1.Text; r.Question2 = txt_ques2.Text; r.Question3 = txt_ques3.Text; r.Question4 = txt_ques4.Text; r.Question5 = txt_ques5.Text; r.Question6 = txt_ques6.Text; r.Question7 = txt_ques7.Text; ds.OffresEmploi.AddOffresEmploiRow(r); DataSet1TableAdapters.OffresEmploiTableAdapter ta; ta = new DataSet1TableAdapters.OffresEmploiTableAdapter(); ta.Update(ds.OffresEmploi); Label18.Visible = true; Label18.Text = "offre ajoutée avec succès"; } }
Partager