Problème avec un fichier xml et un pictureBox
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:
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;
}
}
} |