Insertion et recuperation d'image dans une bd access

Résolu
street2009 Messages postés 2 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 8 juin 2011 - 8 juin 2011 à 02:44
street2009 Messages postés 2 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 8 juin 2011 - 8 juin 2011 à 19:07
Bonjour tout le monde j'aimerai savoir si quelqu'un pourrai m'aide car je suis bloquer sur mon application au niveau de l'insertion et la récupération d'une image photo dans ma base de donnée access.
je travail sur une plateforme VS2010 langage utilisé vb.net

je vous explique ce que je veux réellement:

j'aime arriver a enregistré les information (nom, mot de passe et la photo de mon utilisateur) dans ma base de donnée access qui contient les champ: login,pass,image, lors du la recherche d'une information j'aimerai que le code me permet de récupérer les information trouver et afficher l'image de l'utilisateur dans un contrôleur picturebox et avoir la possibilité de voir les autre utilisateur et leur image en défilant les information.


merci pour votre aide

4 réponses

ingito Messages postés 35 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 17 juin 2011
8 juin 2011 à 15:52
salut
tu peux créer un champ "photo" dans ta BD acces, ce champ va contenir le chemin de la photo de la personne que tu peux loader par la suite dans un picture box.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juin 2011 à 08:34
Salut

Quelle version de Access ?
De quel type est ton champ 'image' dans ta DB ?
As-tu regardé parmi les exemples fournis avec ton Access ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
8 juin 2011 à 11:32
Je vais peut être dire une bêtise, mais bon, il est peut possible d'apprendre sans passé par de moment d’humiliation!

Est-il possible de d'enregistrer l'image juste en lisant le fichier et en sauvegardant le contenue dans un champs.
Ensuite en peut la réutiliser en le recréant à nouveau comme un simple fichier txt.

Je pense a cela car c grosomodo comme cela que l'on fait les transferts ftp. On ouvre le fichier et en l'envois bout par bout.

Merci d'être indulgent dans votre réponse !
0
street2009 Messages postés 2 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 8 juin 2011
8 juin 2011 à 19:07
on ce qui concerne l'insertion de la mon image cela n'est plus un pb car je l'ai resolu en voila le code utiliser:

'si un champ n'est pas rempli fin de procédure
If masq(TxtutilisateurNnom.Text) = "" Or _
masq(TxtutilisateurNpass.Text) = "" Then



MessageBox.Show("Vous devez remplir tous les champs !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Error)

Me.TxtutilisateurNnom.Focus()

Exit Sub

End If


'---- gestion des erreur
Try
sql = "INSERT into T_login([login],pass,[image]) VALUES('" & TxtutilisateurNnom.Text & "','" & TxtutilisateurNpass.Text & "','" & photo.FileName & "');"
cmd = New OleDbCommand(sql, cn)
dta = New OleDbDataAdapter(cmd)
'----- ouverture de la connexion

cn.Open()
'--- execution de la requette sql
cmd.ExecuteNonQuery()
'on vide le dataset pour le recréer avec
'les nouvelles données
dts.Clear()
'----- fermeture de la connexion
cn.Close()


'####### message de confirmation d'ajout
MsgBox("Ajout reussi", MsgBoxStyle.Information, "Enregistrement des données")

'#### vider les zone de saisie
TxtutilisateurNnom.Text = ""
TxtutilisateurNpass.Text = ""
PictureBox3.Image = Image.FromFile(Application.StartupPath & "\vide.jpg")

'##############################

Catch ex As Exception
MsgBox(ex.Message)
connexion()
End Try

actuellement le problème qui me reste c'est comment faire pour mètre a jour en cas d'erreur sur le chemin de mn image photo et récupérer l'image de l'utilisateur et l'afficher dans un contrôleur Picturebox au démarrage de l'application et les faire défilé si la table contient beaucoup d'utilisateur.

merci d'avance pour votre réponse en ce qui concerne mon code de modification le voici:
########################### modification ###########


Try


'récupération de la ligne dans le datarow
dtr = dts.Tables("T_login").Rows(rownum)

'modification des donées
dtr("login") = Me.textlogin.Text
dtr("pass") = Me.textpass.Text
dtr("image") = Me.photo.FileName

'création et exécution du commandbuilder
'pour mettre à jour le DataAdapter
cmdb = New OleDbCommandBuilder(dta)

'mise à jour des données du DataAdapter
'à partir du commandbuilder
dta.Update(dts, "T_login")

'on vide le dataset pour le recréer avec
'les nouvelles données
dts.Clear()
dta.Fill(dts, "T_login")
dtt = dts.Tables("T_login")

'mise à jour du datagrid
DataGrid3.SetDataBinding(dts, "T_login")

'retour au début du fichier
rownum = 0

'affichage des données dans les texbox
Me.textlogin.Text = dtt.Rows(rownum).Item("login")
Me.textpass.Text = dtt.Rows(rownum).Item("pass")
Me.PictureBox1.Image = dtt.Rows(rownum).Item("image")


MessageBox.Show("Les données sont modifiées !", "Modification...", MessageBoxButtons.OK, MessageBoxIcon.Information)

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try
####################### fin modification ##########

et pour la récupération:
######################## code recuperation ###########


Try


' Dim stream As FileStream = New FileStream(photo.FileNames)

sql = "select T_login.* from T_login"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cn
Dim dr As OleDbDataReader
cn.Open()
dr = cmd.ExecuteReader()
'cn.Close()

'chargement du DataSet à partir du DataAdapter
dta.Fill(dtt)

'dta.Fill(dts, "T_login")

'chargement de la DataTable à partir du DataSet
' dtt = dts.Tables("T_login")

'si la table est vide alors
If rownum > dtt.Rows.Count - 1 Then



'Me.Show()
'Me.txtnom.Focus()

Else

'affichage des données dans les textbox
Me.TxtNomU.Text = dtt.Rows(rownum).Item("login")
If dr.Read() Then
PictureBox3.Image = Image.FromFile(dr.Item(3))
Else
PictureBox3.Image = Image.FromFile(Application.StartupPath & "\vide.jpg")
End If


'affichage des données dans le datagrid
DataGrid2.SetDataBinding(dts, "T_login")



End If


Catch ex As Exception

MessageBox.Show(ex.Message)

End Try


################ fin code recuperation ###############

merci de votre aide d'avance
0
Rejoignez-nous