XML Datum in DataTable (Format stimmt nach .WriteXml nicht mehr + NULL-Werte macht Probleme)

09/11/2007 - 11:05 von Ralph Hüttenmoser | Report spam
Guten Morgen

Ich stolpere im Moment über 2 Fehler:

Generell für beide Anfragen:
Schema-Definition:
<xs:element name="ProductElementLockDate" type="xs:dateTime" minOccurs="0" />


a) Format stimmt nach .WriteXmL nicht mehr
In meiner XML-Datei steht ein Wert
//habe ich aus einem lauffàhigen XML-kopiert
<ProductElementLockDate>2007-11-05T15:02:16.731139+01:00</ProductElementLockDate>

Im Code muss ich das Datum korrigieren!
DataRow changedRow = _dsMainDataStore.Tables["PRODUCTELEMENT"].Rows.Find(_elementID);
if (changedRow != null)
{
_changedRow["ProductElementLockDate"] = DateTime.Now;
}

Nach dem .WriteXML steht folgender Wert in der XML-Datei, was ein Wiedereinlesen mit .ReadXML verunmöglicht.

Daten: <ProductElementLockDate>09.11.2007 10:57:11</ProductElementLockDate>
Fehler: Message="Die Zeichenfolge '09.11.2007 10:57:11' kein gültiger AllXsd-Wert."


Wie korrigiere ich diesen Fehler?



b) Null-Werte in XML-Daten
-
Wenn per Zufall in allen Datensàtzen das Datum leer ist (somit ist die XML-Linie
"<ProductElementLockDate></ProductElementLockDate>" auch nicht enthalten), dann ist

a) im DataSet.DataTable das Attribut zwar vorhanden (aber in allen Sàtzen leer)

ABER

b) der folgende Code làuft nicht mehr, da in "changedRow" nun das Attribut "ProductElementLockDate" FEHLT!!!

DataRow changedRow = _dsMainDataStore.Tables["PRODUCTELEMENT"].Rows.Find(_elementID);
if (changedRow != null)
{
_changedRow["ProductElementLockDate"] = DateTime.Now;
}

Konkret:
Ist in einem Satz das Attribut "ProductElementLockDate" gefüllt, tritt dieses Phànomen nicht auf

Kann mich jemand unterstützen?

Vielen Dank für Eure Zeit

Ralph
 

Lesen sie die antworten

#1 Ralph Hüttenmoser
09/11/2007 - 16:45 | Warnen spam
Problem a) konnte ich wie folgt selber lösen:

changedRow["ProductElementLockDate"] = System.DateTime.Now.ToString("yyyy\\-MM\\-dd\\THH:mm:sszzz");

Ähnliche fragen