Là, y'a un truc que je comprends pas dans mon code.
J'ai une méthode de lecture :
Code : 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 public MainDataSet LoadData() { XmlDocument MyDoc = new XmlDocument(); MainDataSet MyDs = new MainDataSet(); MainDataSet.GlobalDataRow MyRow = MyDs.GlobalData.NewGlobalDataRow(); if(File.Exists("data.xml")) { MyDoc.Load("data.xml"); // Récupération des paramètres généraux MyRow.Product = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/SoftWare").InnerText; MyRow.BasePath = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/DataBaseFile").InnerText; MyRow.CheckBoxClientState = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/CheckBoxClientState").InnerText; MyRow.ListClientPath = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/ClientListPath").InnerText; MyRow.CheckBoxProviderState = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/CheckBoxProviderState").InnerText; MyRow.ListProviderPath = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/ProviderListPath").InnerText; MyRow.Ticks = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/Ticks").InnerText; MyRow.NextUpdate = MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/NextUpdate").InnerText; MyDs.GlobalData.AddGlobalDataRow(MyRow); // Chargement des données clients for (int i = 0; i < MyDoc.SelectNodes("ExchangeUpdater/Client/Field").Count; i++) { MyDs.Client.AddClientRow(MyDoc.SelectNodes("ExchangeUpdater/Client/Field").Item(i).ChildNodes[0].InnerText, bool.Parse(MyDoc.SelectNodes("ExchangeUpdater/Client/Field").Item(i).ChildNodes[1].InnerText), MyDoc.SelectNodes("ExchangeUpdater/Client/Field").Item(i).ChildNodes[2].InnerText); } // Chargement des données fournisseurs for (int i = 0; i < MyDoc.SelectNodes("ExchangeUpdater/Provider/Field").Count; i++) { MyDs.Provider.AddProviderRow(MyDoc.SelectNodes("ExchangeUpdater/Provider/Field").Item(i).ChildNodes[0].InnerText, bool.Parse(MyDoc.SelectNodes("ExchangeUpdater/Provider/Field").Item(i).ChildNodes[1].InnerText), MyDoc.SelectNodes("ExchangeUpdater/Client/Field").Item(i).ChildNodes[2].InnerText); } } return MyDs; }
Et une méthode d'écriture :
Et bien ça lit bien le fichier lorsque j'appelle ma méthode, mais lorsque j'appelle ma méthode d'écriture il m'annonce que le fichier est inexistant alors que c'est le même que celui que je lis...
Code : 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 public bool SaveData(MainDataSet MyDs) { XmlDocument MyDoc = new XmlDocument(); if (File.Exists("data.xml")) { // Si le fichier existe - Ouverture et vidage MyDoc.Load("data.xml"); } else { // Si le fichier n'existe pas création MessageBox.Show("Le fichier de données est corrompu ou inexistant", "Erreur 10", MessageBoxButtons.OK); return false; } // Enregistrement des données globales MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/SoftWare").InnerText = MyDs.GlobalData[0].Product; MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/DataBaseFile").InnerText = MyDs.GlobalData[0].BasePath; MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/CheckBoxClientState").InnerText = MyDs.GlobalData[0].CheckBoxClientState; MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/ClientListPath").InnerText = MyDs.GlobalData[0].ListClientPath; MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/CheckBoxProviderState").InnerText = MyDs.GlobalData[0].CheckBoxProviderState; MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/ProviderListPath").InnerText = MyDs.GlobalData[0].ListProviderPath; MyDoc.SelectSingleNode("ExchangeUpdater/GeneralData/Ticks").InnerText = MyDs.GlobalData[0].Ticks; // Enregistrement des données clients MyDoc.SelectSingleNode("ExchangeUpdater/Client").RemoveAll(); // Récupère les fichiers à enregistrer for (int i = 0; i < MyDs.Client.Count; i++) { if (MyDs.Client[i].Synchronize) { XmlNode el = MyDoc.CreateNode(XmlNodeType.Element, "Field", null); XmlElement element = MyDoc.CreateElement("ExchangeData"); element.InnerText = MyDs.Client[i].ExchangeData; el.AppendChild(element); XmlElement element1 = MyDoc.CreateElement("Synchronize"); element1.InnerText = MyDs.Client[i].Synchronize.ToString(); el.AppendChild(element1); XmlElement element2 = MyDoc.CreateElement("SoftwareData"); element2.InnerText = MyDs.Client[i].SoftwareData; el.AppendChild(element2); MyDoc.SelectSingleNode("ExchangeUpdater/Client").AppendChild(el); } } // Enregistrement des données fournisseurs MyDoc.SelectSingleNode("ExchangeUpdater/Provider").RemoveAll(); // Récupère les fichiers à enregistrer for (int i = 0; i < MyDs.Provider.Count; i++) { if (MyDs.Provider[i].Synchronize) { XmlNode el = MyDoc.CreateNode(XmlNodeType.Element, "Field", null); XmlElement element = MyDoc.CreateElement("ExchangeData"); element.InnerText = MyDs.Provider[i].ExchangeData; el.AppendChild(element); XmlElement element1 = MyDoc.CreateElement("Synchronize"); element1.InnerText = MyDs.Provider[i].Synchronize.ToString(); el.AppendChild(element1); XmlElement element2 = MyDoc.CreateElement("SoftwareData"); element2.InnerText = MyDs.Provider[i].SoftwareData; el.AppendChild(element2); MyDoc.SelectSingleNode("ExchangeUpdater/Provider").AppendChild(el); } } MyDoc.Save("data.xml"); return true; }
Une idée de la conn**e que j'ai faite ??
Merci pour vos réponses
Partager