Xml avec csharp

younesrh07 - 1 avril 2013 à 17:23
romain60112 Messages postés 70 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 17 avril 2013 - 4 avril 2013 à 08:16
bonjour tout le monde,le probleme et comme suit


<nom_pays>France</nom_pays>
<ville>
<nom_ville>lile</nom_ville>

</ville>




<nom_pays>France</nom_pays>
<ville>
<nom_ville>paris</nom_ville>

</ville>



lorsqu'il s'agit du même pays je voudrai juste qu'il fait la modification au niveau de la ville(ajouter une nouvelle ville dans la même arborescence)
Merci

5 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
2 avril 2013 à 09:24
Hello,
Tout dépend de ton modèle de données...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Merci
je veux qu'il soit de cette façon sachant que j'utilise dataset pour la lecture et l'écriture du fichier xml.


<nom_pays>France</nom_pays>
<ville>
<nom_ville>lile</nom_ville>

</ville>
<ville>
<nom_ville>Paris</nom_ville>

</ville>
0
romain60112 Messages postés 70 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 17 avril 2013 1
3 avril 2013 à 16:58
slt,

donne nous un bout de code où tu fait ta sauvegarde, en attendant ça doit avoir une tête comme ça :

DataRow dr = dataSet.MaTable.NewRow();

dr["CHAMP_1"] = "toto";
dr["CHAMP_2"] = "tata";
dr["CHAMP_3"] = "titi";
dr["CHAMP_4"] = "tutu";

dataSet.MaTable.Rows.Add(dr);
dataSet.AcceptChanges();

a+
0
Merci,voila la structure est comme suit
public Form1()
{
//création dataset(dsM) &datatable(dtM,dtl
dsM = new DataSet("Pays_ville");
dtM = new DataTable("Pays");
dtl = new DataTable("ville");
//ajout des colonnes
dtM.Columns.Add("nom_pays", typeof(String));
dtl.Columns.Add("nom_ville", typeof(String));


//enregistrement des données datatable dans dataset
dsM.Tables.Add(dtM);
dsM.Tables.Add(dtl);
//creation d'une relation entre deux datatable
DataRelation relation = new DataRelation("Pays_ville", dsM.Tables["Pays"].Columns["nom_pays"], dsM.Tables["ville"].Columns["nom_pays"]);
relation.Nested = true;
dsM.Relations.Add(relation);

//Enregistrement dans les datatable

foreach (string valeur in motSansDoublon)
{
dtM.Rows.Add(valeur);
dtl.Rows.Add(dgv.CurrentRow.Cells[0].Value, dgv.CurrentRow.Cells[3].Value, valeur);

//enregistrer les donnée dataset dans le fichier index.xml
dsM.WriteXml("index.xml");
}
// avant d'ajouter datarelation j'avais la redondance dans mon ficher xml c'est ce que j'ai mentionner au début mais, après l'utilisation de ce dernier j'ai rencontré un nouveau problème, c'est qu'il m'interdit d'ajouter une autre fois pour la raison d'une contrainte primary key.Je sais pas quoi faire j’attends vos réponse voila quelque information qui peu vous servir

//nom_pays c'est une clé primaire de la table pays et en même temps une clé //étrangère le problème qui ce pause c'est que lorsqu'il fait l'enregistrement pour la deuxième fois
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
romain60112 Messages postés 70 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 17 avril 2013 1
4 avril 2013 à 08:16
une boucle foreach pour détecter si nom_pays est déjà présent dans la table devrait résoudre ton problème :

foreach (DataRow dr in dsM.dtM.Rows)
{
if (string.Compare(string_a_comparer, dr["nom_pays"].ToString(), false) == 0)
{

}
}
0
Rejoignez-nous