dataset.WriteXml(DateiName)

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Wolfy.

    dataset.WriteXml(DateiName)

    Hallo Zusammen,

    ich speicher Grundeinstellungen der Anwendung als xml.
    Ich Verwende snippet hier aus dem Forum

    VB.NET-Quellcode

    1. Public Sub speichern(dset As DataSet, DateiName As String)
    2. Form1.Validate() 'übernimmt ggfs. die aktuelle Eingabe, auch wenn noch nicht abgeschlossen. Andernfalls wundert man sich womöglich, dass die letzte Eingabe nicht mit abgespeichert wurde
    3. dset.WriteXml(DateiName)
    4. 'dset.WriteXmlSchema("schema.xsd")
    5. dset.AcceptChanges() 'setzt Dataset.HasChanges auf False. Das hat auswirkungen auf das Schließ-Verhalten in Form_FormClosing
    6. Media.SystemSounds.Asterisk.Play()
    7. End Sub


    Das wird auch gemacht. :D
    Aber:
    Nachdem ich am Code gespielt habe oder irgendwann, steht in der xml Datei nicht mehr der Originaltext.
    Bsp nach dem speichern:

    XML-Quellcode

    1. <DataSet2 xmlns="http://tempuri.org/DataSet2.xsd">
    2. "); vertical-align: bottom; height: 10px;"><DataTable1>
    3. <ID>-1</ID>
    4. <NameDatendatei>WG-Data.xml</NameDatendatei>
    5. <Trennzeichen xml:space="preserve"> </Trennzeichen>
    6. <EntfernendesZn1>|</EntfernendesZn1>
    7. <EntfernendesZn2 xml:space="preserve"> </EntfernendesZn2>
    8. <DataColumn5>Test</DataColumn5>
    9. </DataTable1>
    10. "); vertical-align: bottom; height: 10px;"><DataTable2>
    11. <ID>-1</ID>
    12. <Filtername>ohne</Filtername>
    13. <Filterstring/>
    14. </DataTable2>
    15. </DataSet2>


    Irgendwann ... ZB beim nächsten Starten der Anwendung aus VS heraus.
    Steht dann folgendes drinnen:

    XML-Quellcode

    1. <doc>
    2. "); vertical-align: bottom; height: 10px;"><assembly>
    3. <name> WG-Check </name>
    4. </assembly>
    5. "); vertical-align: bottom; height: 10px;"><members>
    6. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.My.Resources.Resources">
    7. <summary> A strongly-typed resource class, for looking up localized strings, etc. </summary>
    8. </member>
    9. "); vertical-align: bottom; height: 10px;"><member name="P:WG_Check.My.Resources.Resources.ResourceManager">
    10. <summary> Returns the cached ResourceManager instance used by this class. </summary>
    11. </member>
    12. "); vertical-align: bottom; height: 10px;"><member name="P:WG_Check.My.Resources.Resources.Culture">
    13. <summary> Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. </summary>
    14. </member>
    15. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet1">
    16. <summary> Represents a strongly typed in-memory cache of data. </summary>
    17. </member>
    18. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet1.DataTable1DataTable">
    19. <summary> Represents the strongly named DataTable class. </summary>
    20. </member>
    21. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet1.DataTable1Row">
    22. <summary> Represents strongly named DataRow class. </summary>
    23. </member>
    24. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet1.DataTable1RowChangeEvent">
    25. <summary> Row event argument class </summary>
    26. </member>
    27. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2">
    28. <summary> Represents a strongly typed in-memory cache of data. </summary>
    29. </member>
    30. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2.DataTable1DataTable">
    31. <summary> Represents the strongly named DataTable class. </summary>
    32. </member>
    33. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2.DataTable2DataTable">
    34. <summary> Represents the strongly named DataTable class. </summary>
    35. </member>
    36. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2.DataTable1Row">
    37. <summary> Represents strongly named DataRow class. </summary>
    38. </member>
    39. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2.DataTable2Row">
    40. <summary> Represents strongly named DataRow class. </summary>
    41. </member>
    42. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2.DataTable1RowChangeEvent">
    43. <summary> Row event argument class </summary>
    44. </member>
    45. "); vertical-align: bottom; height: 10px;"><member name="T:WG_Check.DataSet2.DataTable2RowChangeEvent">
    46. <summary> Row event argument class </summary>
    47. </member>
    48. </members>
    49. </doc>


    Ich finde nicht raus wer oder was die Datei ändert. :S
    Gibt es einen Ansatz die Datei zu überwachen, um zu schauen, wer oder was die Datei ändert.
    Hatte der Datei Schreibschutz verpasst. Sie wird nicht geändert. Ich bekomme aber auch nirgends eine Fehlermeldung.

    Kann es sein, dass VS da irgendetwas reinschreibt ohne das es das soll?

    Es ist nicht Eilig, aber es Irritiert mich.
    Ich frage mich, wo mein Fehler ist.

    ?( Wolfy
    Wie lautet der Dateipfad und der Name deiner Datendatei?
    Ich vermute, du verwendest den Namen der Projektmappe...
    Und übrigens:

    VB.NET-Quellcode

    1. Form1.Validate()'???
    siehe in dieses Tutorial

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()

    Hi VB1963,

    der Dateiname : InifileName As String = Application.StartupPath & "\WG-Check.xml"
    Darin wird Dataset2 gespeichert.
    In der Änderung steht was von Dataset1. Das Dataset1 speicher ich aber nicht.

    Zu Form1..... Soweit bin ich auch schon (Instanzieren) OK.
    Aber Step by Step.
    Suche nun erst den Fehler dieser ungewollten Änderung. Dann geht es weiter. Nicht zu viele Baustellen aufmachen.

    LG Wolfy

    HenryV schrieb:

    Visual Studio generiert beim Kompilieren selbst eine XML mit diesem Name, welche die Dokumentationskommentare enthällt
    In NET6 z.B. macht das Studio das nicht. Das ist ja sowieso einiges anders was den StartupFolder angeht.

    Aber die Problematik hätte man auch dementsprechend nicht wenn man Programmdaten nicht im StartUp-Folder ablegen würde. An andrer Stelle wäre es gar nicht so ungewöhlich eine Datendatei mit dem gleichen Namen zu haben.