Bonjour,

j'ai créé une page avec deux boutons, un gridview; dans mon code j'utilise un datset que je rempli avec un fichier xml qui se trouve dans "app_data".


le but est :
appui bouton 1 ==> lecture et remplissage du gridview avec le fichier xml ==> OK (chaque attribut du xml correspond à une colonne du gridview)

appui sur bouton 2 ==> modification de toutes les cellules de la colonnes "1" ligne par ligne, mise à jour de la gridview et sauvegarde en fichier XML.


voici les extraits :

fichier XML pour remplir le dataset et donc par liaison le gridview1....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?xml version="1.0" standalone="yes" ?> 
 <LDAP_DEV>
  <option adspath="" employeenumber="" cn="" o="" title="" physicaldeliveryofficename="" ou="" manager="" homepostaladdress="" postaladdress="" sn="" postalcode="" uid="" businesscategory="" mail="" l="" givenname="" /> 
  <option adspath="LDAP://ldap/uid=prenom.nom,ou=toto,o=lili,dc=ici,dc=fr" employeenumber="123456" cn="nom prenom" o="maison" title="pole" physicaldeliveryofficename="bureau" ou="service" homepostaladdress="labas" postaladdress="rue" sn="nom" postalcode="99999" uid="prenom.nom" businesscategory="Personnel" mail="prenom.nom@ici.fr" l="ville" givenname="prenom" /> 
 </LDAP_DEV>

Le bout de code pour la modif du dataset et mise à jour du GridView1.....

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
        public void Button2_Click(object sender, EventArgs e)
        {
            string valeur_champ = "";
 
            int i = 0;
            DataSet ds = new DataSet();
            ds.ReadXml(Server.MapPath(@"App_data\LDAP_DEV.xml"), XmlReadMode.Auto);
 
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                valeur_champ = row[0].ToString();
                ds.Tables[0].Rows[i].BeginEdit();
                valeur_champ = valeur_champ + ",o=nouveau,o=enplus";
                ds.Tables[0].Rows[i].ItemArray[0] = valeur_champ;
                ds.Tables[0].Rows[i].EndEdit();
 
                i++;
            }
 
 
            ds.AcceptChanges();
 
            GridView1.DataSource = ds;
            GridView1.DataBind();
            ds.WriteXml(Server.MapPath(@"App_data\LDAP_DEV1.xml"));
 
        }

la dernière ligne du code sert à créer un nouveau fichier xml pour voir le xml initial modifié.

Actuellement, je n'ai aucune erreur quand j’exécute le code mais le fichier xml nouvellement créé est une copie de l'initial sans les modifs qui m’intéressent.

Je ne trouve pas la solution pour modifier les données dans le dataset.

est-ce que j'applique le bon principe, ou faut-il que je modifie les données dans le gridvew ou directement dans le fichier XML ?


Merci de votre aide.