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 :
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;
        }
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...

Une idée de la conn**e que j'ai faite ??

Merci pour vos réponses