[VB.Net]Erreur supression image
Bonjour tout le monde, voila j'ai un probleme pour supprimer une image.
J'ai un formulaire qui récupere tout les enregistrements d'une base de donnée et les affecte dans différents champs, et un bouton précédent et suivant qui permettent de naviguer d'un enregistrement a l'autre (ça re rempli tout simplement les champs du formulaire avec l'occurence suivante) avec cela, j'ai un imagebox qui contient la photo lié a l'enregistrement courant. Je peux agir sur cette photo en la supprimant la modifiant, ou en lier une si il n'y en a pa deja une.
Le probleme est dans la suppression. Quand une photo est présente je peux la supprimer grace a ce code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Dim fichier As String
Dim reply As Integer
If btnsupmod.Text = "Supprimer la photo" Then
reply = MsgBox("Supprimer la photo?" & txtresnummod.Text, MsgBoxStyle.OKCancel)
MsgBox(m)
'si c'est ok
fichier = dossierphoto & txtresnummod.Text & ".jpg"
MsgBox(fichier)
If (reply = 1) Then
lblresimgmod.Image = Nothing
Image1.Dispose()
File.Delete(fichier)
End If |
[... suite plus tard pas le temps ...]
je navigue entre les enregistrement grace a mes boutons précedent et suivant dont le code est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Private Sub btnprecedentmod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprecedentmod.Click
If m = 0 Then
MsgBox("Fin des enregistrements")
Else
m = m - 1
Affichanimalmod()
End If
End Sub
Private Sub btnsuivantmod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsuivantmod.Click
If m = Result.Rows.Count - 1 Then
MsgBox("Fin des enregistrements")
Else
m = m + 1
Affichanimalmod()
End If
End Sub |
m est l'indice qui permet de passer d'un enregistrement a un autre dans le datarow.
la procedure Affichanimalmod est la suivante :
Code:
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
| Private Sub Affichanimalmod()
Ligne = Result.Rows(m)
txtresnummod.Text = Ligne("numanimal").ToString
txtresnommod.Text = Ligne("nomanimal").ToString
txtresdatemod.Text = Ligne("datearriveeanimal").ToString
txtrespoidmod.Text = Ligne("poidanimal").ToString
txtresagemod.Text = Ligne("ageanimal").ToString
cbrestatouagemod.Items.Add(Ligne("tatouageanimal").ToString)
cbrestatouagemod.Text = Ligne("tatouageanimal").ToString
cbressexemod.Items.Add(Ligne("sexeanimal").ToString)
cbressexemod.Text = Ligne("sexeanimal").ToString
cbressterilisationmod.Items.Add(Ligne("sterilisationanimal").ToString)
cbressterilisationmod.Text = Ligne("sterilisationanimal").ToString
If (Ligne("codetypeanimal").ToString = 0) Then
txtrestypemod.Text = "chien"
Else
txtrestypemod.Text = "chat"
End If
''''''''''''''''' remplissage combobox'''''''''''''''''''''
If (Ligne("tatouageanimal").ToString = "non") Then
cbrestatouagemod.Items.Add("oui")
Else
cbrestatouagemod.Items.Add("non")
End If
If (Ligne("sexeanimal").ToString = "femelle") Then
cbressexemod.Items.Add("male")
Else
cbressexemod.Items.Add("femelle")
End If
If (Ligne("sterilisationanimal").ToString = "oui") Then
cbressterilisationmod.Items.Add("non")
Else
cbressterilisationmod.Items.Add("oui")
End If
''''''''''''' vidage de l'image ''''''''''''''''
lblresimgmod.Image = Nothing
Try
Image1 = Image.FromFile("" & dossierphoto & txtresnummod.Text & ".jpg")
lblresimgmod.Image = Image1
btnsupmod.Text = "Supprimer la photo"
btnsupmod.Enabled = True
btnmodimgmod.Enabled = True
txtcheminmod.Enabled = True
btnmodimgmod.Text = "Modifier la photo"
btnmodimgmod.Enabled = True
Catch mysqlexception As Exception
btnsupmod.Text = "Lier une photo"
btnsupmod.Enabled = False
btnmodimgmod.Enabled = False
txtcheminmod.Enabled = False
btnsupmod.Enabled = True
btnmodimgmod.Text = "Lier"
End Try
cbrestatouagemod.DropDownStyle = ComboBoxStyle.DropDownList
cbressexemod.DropDownStyle = ComboBoxStyle.DropDownList
cbressterilisationmod.DropDownStyle = ComboBoxStyle.DropDownList
End Sub |
LE probleme maintenant! Quand j'accede a l'enregistrement dont je veux supprimer la photo par le bouton "suivant" tout marche, mais quand je le fais par le bouton "suivant", c'est le drame, il me dit qu'il ne peut pas supprimer l'image car elle est utilisé par un autre processus. Pourtan mon code de "precedent" est quasi le meme que "suivant", j'ai testé de faire afficher l'indice m a l'execution, elle affiche la meme valeur quand j'accede par "precédent" et par "suivant" mais pourtant j'ai une erreur... je ne vois absolument pas d'ou ça vient et je dois absolument resoudre ce probleme car ce programme me sert pour mon examen de fin d'année.... Quelq'un voit d'où viens le probleme?? merci a vous :?