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
[... suite plus tard pas le temps ...]
Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
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
je navigue entre les enregistrement grace a mes boutons précedent et suivant dont le code est le suivant :
m est l'indice qui permet de passer d'un enregistrement a un autre dans le datarow.
Code VB.Net : 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 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
la procedure Affichanimalmod est la suivante :
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
Code VB.Net : 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 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![]()
Partager