Dataset XML

  • VB.NET
  • .NET 4.5

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Hallo zusammen,
    gegeben ist ein typisiertes Dataset welches unter anderem folgende Tabelle enthält.

    Gespeichert werden die Daten als XML via Dataset.WriteXml(PfadZurXMLDatei)
    Eingabe der Daten folgt über einen Dialog wo mittels String.IsNullOrWhitespace die eingaben überprüft werden. Also ob überhaupt gemacht wurden oder ob nur Leerzeichen eingegeben wurden.

    In der XML Datei sieht es dann folgendermaßen aus.

    XML-Quellcode

    1. <Kunde>
    2. <ID>0</ID>
    3. <Firma>Mustermann AG</Firma>
    4. <Vorname>Max</Vorname>
    5. <Nachname>Mustermann</Nachname>
    6. </Kunde>


    Nun zum Problem.
    Da hier nicht immer ein Vor und Nachname eingegeben werden muss sind es keine Pflichtfelder.
    Wenn zb Vor und Nachname NICHT eingegeben werden kommt folgendes XML heraus.

    XML-Quellcode

    1. <Kunde>
    2. <ID>0</ID>
    3. <Firma>Mustermann AG</Firma>
    4. </Kunde>


    Das wäre auch richtig so.
    Allerdings habe ich manchmal folgende Situation:

    XML-Quellcode

    1. <Kunde>
    2. <ID>0</ID>
    3. <Firma>Mustermann AG</Firma>
    4. <Vorname />
    5. </Kunde>


    Dies verursacht dann den Fehler das Vorname <DBNull> wäre.
    Jetzt frage ich mich wie es passieren kann das im XML der Vorname so wie oben beschrieben steht?
    Es ist weder ein Leerzeichen noch ein Buchstabe etc.
    Weiss jmd wodurch das passieren kann?
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Weiss nicht, aber umgehen kannst du das Problem in dem du einen nicht DBNULL Defaultwert setzt das kannste in den Eigenschaften im Designer der Felder stellen.
    Bilder
    • Unbenannt.png

      15,31 kB, 376×632, 41 mal angesehen
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    Bin Immer noch auf der suche nach dem Psychologen dir mir mich erklären kann.
    <Name /> kommt bei mir raus, wenn ich dem Teil String.Empty zuweise. Ist da was entsprechendes in Code oder tDS-Default-Einstellung für diese Spalte zu finden? Wenn ich die Zeile in der XML weglasse, wird zur Laufzeit DbNull bei mir vom Compiler postuliert.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Erstmal danke für eure Antworten. Ich werde später (nach der Arbeit) mal alle Möglichkeiten austesten.
    @ VaporiZed
    Ich habe keinen extra Code. Das funktioniert alles mit DataBinding. Sprich, die Controls werden aus dem Datenfenster (komme grad nicht auf den richtigen Namen) auf die Form gezogen. Das reicht ja völlig aus.
    Ich werde nachher nochmal alles testen und berichte wieder.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Ich habe jetzt nochmal alles geprüft und keinen Code gefunden der ein String.Empty eintragen könnte.
    Daher habe ich mich für die Vorgehensweise von @NoIde entschieden.
    Danke an alle für eure Hilfe.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.