Voici l'histoire. Je faisais un programme, chaque fois que le programme est fermé, toutes les données créées par l'utilisateur sont perdues, donc chaque fois que l'utilisateur rouvre le programme, il doit refaire tout le travail. J'ai donc décidé d'utiliser un fichier xml pour stocker les données, car un dbms serait trop long à charger et le code pour gérer un fichier en texte brut serait difficile à maintenir. Les données sont principalement composées de liens qui stockent deux chemins de fichier, un pour l'origine et un pour la destination, un booléen qui représente l'état du lien avant la fermeture du programme, et quelques autres choses moins importantes. Lorsque le programme charge les données doivent être lues en restaurant l'état précédent de l'applicationComment écrire une datarow dans un fichier xml
Je fait un fichier xml comme ceci:
...
<Directories>
<Directory id="0">
<FilePath>C:\Test1</FilePath>
<PathSeparator>\</PathSeparator>
</Directory>
...
et a utilisé un DataSet pour obtenir les données.
Directory getDirectory()
{
ds = new DataSet();
ds.ReadXml(xmlPath);
DataRow[] myRow = ds.Tables["Directory"].
Select("id ="+id.ToString());// "id = id"
string temp = myRow[0]["FilePath"].ToString();
Directory result = new Directory();
result.path = temp;
temp = myRow[0]["PathSeparator"].ToString();
result.pathSeparator = temp[0];
return result;
}
Tout ce qui fonctionne très bien, mais j'ai essayé d'ajouter de nouvelles « lignes » au xml:
public static int addDirectory(DataSet ds, char pathSeparator, string path)
{
DataRow myRow = ds.Tables["Directory"].NewRow();
myRow.ItemArray[0] = 8;
myRow.ItemArray[1] = path;
myRow.ItemArray[2] = pathSeparator.ToString();
myRow.ItemArray[3] = "lol";
ds.Tables["Directory"].Rows.Add(myRow);
ds.AcceptChanges();
ds.WriteXml(ApplicationDataManager.xmlPath);
return 8;
}
Mais tout cela est écrit à un endroit aléatoire sur la .xml
Qu'est-ce que je fais mal? Par ailleurs si quelqu'un a des suggestions sur la façon dont je devrais stocker ces données, je serais heureux d'entendre (lire).
Merci d'avance! Les liens de fichier sont utilisés pour créer une connexion entre deux répertoires, afin qu'ils puissent être synchronisés.
"chaque fois que le programme est fermé toutes les données (liens de fichier) créés par l'utilisateur sont perdues," vous devriez résoudre ce problème, quittez le décodage avec XML. Que voulez-vous dire "les données créées par l'utilisateur est perdu"? C'est ce qui est important. –
S.Lott, c'est exactement ce que j'essaie de résoudre en «tripatouillant XML», le programme n'est pas obligé de stocker l'état des sessions précédentes, y compris tous les liens. Bien qu'en ne stockant pas de liens, l'utilisateur devra recréer tous les liens qu'il a déjà créés. – Diones
qu'en est-il du stockage isolé? –