Bonjour ,
Je voudrais stocker une image (jpeg) dans ma base de donnée et ensuite la récupérer . Dois je sérialiser ?? ou y'a t'il une technique bien précise ?
Merci à vous .
Bonjour ,
Je voudrais stocker une image (jpeg) dans ma base de donnée et ensuite la récupérer . Dois je sérialiser ?? ou y'a t'il une technique bien précise ?
Merci à vous .
Voici un exemple de script SQL utilisé pour créer une table contenant des images :
Pour le stockage : (en vb.net)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE [dbo].[Images] ( [id_img] [int] IDENTITY (1, 1) NOT NULL , [img] [image] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO
Pour la récuperation :
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 Dim mystream As FileStream Dim img_bytes AsByte() 'récuperation d'un tableau d'octets à partir du fichier c:\test.bmp mystream = File.Open("c:\test.bmp", FileMode.Open, FileAccess.Read) ReDim img_bytes(CInt(mystream.Length) - 1) mystream.Read(img_bytes, 0, CInt(mystream.Length) - 1) 'lecture des bytes mystream.Close() 'connection à la base et insertion de l'enregistrement Dim connection As SqlConnection = New SqlConnection("workstation id=PORTPATRICE;packet size=4096;integrated security=SSPI;data source=PORTPATRICE;persist security info=False;initial catalog=ImageDB") Dim command As SqlCommand = New SqlCommand("INSERT INTO Images (img) VALUES (@img)", connection) Dim myparam As SqlParameter = New SqlParameter("@img", SqlDbType.Image) myparam.Value = img_bytes command.Parameters.Add(myparam) connection.Open() command.ExecuteNonQuery() connection.Close()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim img_bytes AsByte() Dim connection As SqlConnection = New SqlConnection("workstation id=PORTPATRICE;packet size=4096;integrated security=SSPI;data source=PORTPATRICE;persist security info=False;initial catalog=ImageDB") Dim myr As SqlDataReader connection.Open() Dim command As SqlCommand = New SqlCommand("select * from images", connection) myr = command.ExecuteReader myr.Read() 'récupération des octets enregistrés dans la table comprenant les images img_bytes = CType(myr("img"), Byte()) 'Affichage de l'image générée à partir du tableau d'octets que l'on a récupéré PictureBox2.Image = New Bitmap(New System.IO.MemoryStream(img_bytes))
Personnellement on m'avait conseiller d'utiliser le type BLOB plutot que TEXTIMAGE.
Mais bon le principe reste le même.
Hello,
pour le stockage d'image je t'invite à lire l'article d'SQL Pro qui est très interessant:
Des images dans ma base
Bye
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager