Bonjour à tous,
j'ai un petit problème qui m'empêche de continuer mon application,qui va me permettre de gérer mes jeux (bref rien d'extraordinaire).
Le problème arrive lorsque je choisis une photo pour le jeux.
je remplis les différent textbox et je sélectionne la photo.
j'appuie sur le bouton ajouter et tous fonctionne.
lorsque je ferme mon applic et que je la redémarre,je constate que les données n'ont pas été écrites dans le fichier.
Le problème vient du File.copy();
Lorsque je supprime cette ligne,mes données sont bien écrites.
je ne vois pas le lien avec le fichier xml.
si quelqu'un peut m'aider!
voici le code
Code c# : 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Xml; using System.Xml.XPath; namespace Xml { public partial class Form1 : Form { XmlDocument doc; string path = "C:\\Documents and Settings\\Maramorosz johnny\\Mes documents\\Visual Studio 2008\\Projects\\open\\open\\bin\\Debug\\"; public Form1() { InitializeComponent(); doc = new XmlDocument(); initialiseListe(); } private void initialiseListe() { //methode qui initialise la liste des jeux listBox1.Items.Clear(); doc.Load("liste.xml"); XmlNodeList liste = doc.GetElementsByTagName("titre"); foreach (XmlNode node in liste) listBox1.Items.Add(node.InnerText); } private void button1_Click(object sender, EventArgs e) { //Le fichier xml existe déjà,cette partie permet d'ajouter un jeu string texte = "Le jeu a été ajouté!"; XmlElement newjeux = doc.CreateElement("jeux"); XmlElement newTitre = doc.CreateElement("titre"); newTitre.InnerText = textBox1.Text; string titre = textBox1.Text; newjeux.AppendChild(newTitre); XmlElement newEditeur = doc.CreateElement("editeur"); newEditeur.InnerText = textBox2.Text; newjeux.AppendChild(newEditeur); XmlElement newGenre = doc.CreateElement("genre"); newGenre.InnerText = textBox3.Text; newjeux.AppendChild(newGenre); XmlElement newResume = doc.CreateElement("resume"); newResume.InnerText = richTextBox1.Text; newjeux.AppendChild(newResume); doc.DocumentElement.AppendChild(newjeux); XmlTextWriter wrt = new XmlTextWriter("liste.xml",Encoding.UTF8); wrt.Formatting = Formatting.Indented; doc.WriteContentTo(wrt); wrt.Close(); message(texte); //je copie l'image sélectionner dans le repertoire debug File.Copy(openFileDialog1.FileName, path + titre + ".jpeg"); } private void message(string texte) { //réinitialise la liste après un ajout,une mise à jour ou suppression MessageBox.Show(texte); textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); richTextBox1.Clear(); initialiseListe(); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { string verif = "liste/jeux[titre='" + listBox1.SelectedItem.ToString() + "']"; XmlNode node = doc.SelectSingleNode(verif); textBox1.Text = node["titre"].InnerText; textBox2.Text = node["editeur"].InnerText; textBox3.Text = node["genre"].InnerText; richTextBox1.Text = node["resume"].InnerText; } private void button2_Click(object sender, EventArgs e) { //mise à jour dans le fichier xml string texte = "Le jeu est mis à jour!"; string verif = "liste/jeux[titre='" + listBox1.SelectedItem.ToString() + "']"; XmlNode node = doc.SelectSingleNode(verif); if (node["titre"].InnerText != textBox1.Text) node["titre"].InnerText = textBox1.Text; else if (node["editeur"].InnerText != textBox2.Text) node["editeur"].InnerText = textBox2.Text; else if (node["genre"].InnerText != textBox3.Text) node["genre"].InnerText = textBox3.Text; else if (node["resume"].InnerText != richTextBox1.Text) node["resume"].InnerText = richTextBox1.Text; doc.DocumentElement.ReplaceChild(node, node); doc.Save("liste.xml"); message(texte); } private void button3_Click(object sender, EventArgs e) { //suppression du jeu dans le fichier xml string texte = "Le jeu a été supprimé!"; string verif = "liste/jeux[titre='" + listBox1.SelectedItem.ToString() + "']"; XmlNode node = doc.SelectSingleNode(verif); doc.DocumentElement.RemoveChild(node); doc.Save("liste.xml"); message(texte); } private void pictureBox1_Click(object sender, EventArgs e) { //selection de l'image DialogResult r = openFileDialog1.ShowDialog(); if (r == DialogResult.OK) pictureBox1.ImageLocation = openFileDialog1.FileName; } } }
Partager