Stocker une photo dans une base de donnée sql server

Fermé
herman512 - 20 juil. 2013 à 14:16
 bokombejeanpapin - 2 juil. 2015 à 12:56
Bonjour,

j'ai un projet de fin d'année qui porte sur une application de gestion des etudiants d'une ecole j'aimerais sauvegarder les photos des etudiants dans une base de donnée sql server a travers visual Studio .net
donc SVP aider moi a le faire
merci

1 réponse

MrYAU31
Messages postés
3743
Date d'inscription
samedi 23 février 2013
Statut
Membre
Dernière intervention
8 juillet 2017
1 649
20 juil. 2013 à 14:32
Bonjour,

Tu as 2 possibilités :
1- Tu stockes le chemin de la photo dans ta BDD
https://forums.commentcamarche.net/forum/affich-10948327-comment-stoker-une-image-dans-sqlserver
https://sqlpro.developpez.com/cours/stockerimages/

2- Tu stockes directement la photo dans ta base
https://docs.microsoft.com/fr-fr/sql/relational-databases/blob/filetables-sql-server?redirectedfrom=MSDN&view=sql-server-ver15
https://docs.microsoft.com/fr-fr/sql/relational-databases/blob/binary-large-object-blob-data-sql-server?redirectedfrom=MSDN&view=sql-server-ver15

Il y a pas mal de débat sur POUR ou CONTRE le stockage de fichiers directement en BDD. Perso, pour des petits fichiers, je pense qu'il est plus pratique de les stocker directement dans la base. Ça évite des problèmes potentiels genre photo supprimée via explorateur et lien toujours existant dans la base, etc. et ça simplifie les sauvegardes puisqu'il suffit de sauvegarder uniquement la base.

Pour accéder aux fichiers directement stockés en base, il s'agit d'un FileStream classique donc simple à gérer.
3
herman512
Messages postés
13
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
24 juin 2014

20 juil. 2013 à 14:57
merci beaucoup je vais essayé
0
MrYAU31
Messages postés
3743
Date d'inscription
samedi 23 février 2013
Statut
Membre
Dernière intervention
8 juillet 2017
1 649
Modifié par MrYAU31 le 20/07/2013 à 15:05
Je viens de retrouver un bout de code que j'avais fait il y a longtemps pour des tests. Ça peut t'aider même si ce n'est pas commenté ;-)
(c'est du VB.NET pour la partie lecture)

Pour enregistrer la photo :
'Simple requête SQL à exécuter avec les bons paramètres
DECLARE @img AS VARBINARY(MAX)
SELECT @img = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET(BULK 'PATH_DE_LA_PHOTO', SINGLE_BLOB) AS x
INSERT INTO FICHIERS (FICHIER_PID ,FICHIER) VALUES (NewID() ,@img)



Pour lire une photo :
Dim ConStr As String = ConStr = "Data Source=SERVEUR_BDD;Initial Catalog=BASE_DE_DONNEES; user id='USER'; password='PWD';"
Dim con As New SqlClient.SqlConnection(ConStr)
con.Open()
Dim sqlCommand As New SqlClient.SqlCommand()
sqlCommand.Connection = con
sqlCommand.CommandText = "SELECT FICHIER FROM FICHIERS WHERE FICHIER_ID = 'xxx'"
Dim Result As Object = sqlCommand.ExecuteScalar
If IsDBNull(Result) Then
'PAS DE LOGO, ON NE FAIT RIEN
Else
Dim buffer As Byte() = Result
' Utilisation de la mémoire comme magasin de stockage du fichier
Dim ms As MemoryStream = New MemoryStream(buffer)
Dim image As Image = image.FromStream(ms)
PictureBox.Image = image
End If
0
herman512
Messages postés
13
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
24 juin 2014

20 juil. 2013 à 15:46
ok je vais essayé voire merci
0
hanadakia
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018

Modifié par hanadakia le 22/05/2014 à 13:16
Bonjour,
SVP est ce que vous pouvez me donner le code de lire une photo en visual foxpro?
Merci Beaucoup.
0
bokombejeanpapin
2 juil. 2015 à 12:56
comment je peut lire cette photo en langage java?
0