Frage : Datensatz zum xml

hallo -- ich verbracht jetzt zu viel Zeit, die versucht, herauszufinden, wie man diese Arbeit bildet. ich benutze vs2010 und c#. ich hatte eine Erwartung, die, wenn ich einen Datensatz von einer xml Akte bevölkere -- und spezifiziert dem Schema -- dass die Datei zurück neue Reihen in den derselben Ort schreiben (IE die gleiche Nullpunkt- = Tabellengleichwertigkeit) dem er ihn von nahm. Z.B. wenn ich eine xml Akte mit den folgenden Daten las:


NNP SteuerTower
ControleName>
T
8
1.0
1ber>
10RecordID>


NNP Meister Test
testme>
R
1
1.0
1ber>
20RecordID>


this kann benutzt werden, um eine Tabelle vom DataTable dtMod = von ds zu bevölkern. Tabellen [„eachModule“]. die Tabelle benutzt dann, um ein gridview zu bevölkern. ich kann die Tabelle über das gridview dann manipulieren, um Reihen zu addieren. wenn ich gehe, die Anwendung zu speichern, verwende ich ds.writeXML (myfile) zurück zu der Akte, die ich ursprünglich öffnete. dieses arbeitet -- und nächstes Mal wenn ich es öffne, bevölkert die Tabelle und das gridview richtig. gleichwohl die neue Reihe auf der ersten Seite der xml Akte appened, eher als, hinzufügend am passenden Punkt im Schema (IE-Module > jedes Modul).

what, das ich kennen möchte, ist, ob dieses die Weise ist das System bearbeitet und wenn ich eine neue Reihe zu einem Tabelle anfügen möchte, ich den wissen und zu einem Nullpunkt in die xml Akte explicitly.
thanks,
Jim
schreiben muss

Antwort : Datensatz zum xml

Hallo,

Ich denke, dass ich sehe, was los ist.  Sie einstellen nicht das „erzeugen Spalte“ modules_Id.

Unten sehen:


privates leeres add_PB_Click (Gegenstandabsender, EventArgs e)
        {

            Versuch
            {
                //Assume-Datensatz ist Anruf ds.
                DataRow Elternteil = ds. Tabellen [„Module“]. Reihen [0]; //Should tun einiges, das hier überprüft, um zu sehen, wenn Reihe existiert
                int maxValue = 0;
                DataRow Dr. = dtMod.NewRow ();
                   
               //Set-Elternteilreihe!!!
               Dr. [„modules_Id“] = Elternteil [„modules_Id“];
               

                wenn (dtMod.Rows.Count! = 0)
                {
                    foreach (DataRow Reihe in dtMod.Rows)
                    {
                        wenn (Convert.ToInt16 (Reihe [„moduleRecordID“]) > maxValue)
                            maxValue = Convert.ToInt16 (Reihe [„moduleRecordID]);
                    }
                }
           
                Dr. [„pathLetter“] = „R“;
                Dr. [„nodeNumber“] = „1“;
                Dr. [„subnet number“] = „1“;
                Dr. [„moduleRecordID“] = maxValue + 5;

                dtMod.Rows.Add (Dr.);

                mainForm.isDirty = ausrichten en;
            }
            Fang (SystemException irren)
            {
                MessageBox.Show (irren. Mitteilung);
            }

        }
Weitere Lösungen  
 
programming4us programming4us