[DataSet to Xml]Probleme si champs vaut null

Probleme si champs vaut null [DataSet to Xml] - C#/.NET managed - Programmation

Marsh Posté le 28-02-2006 à 15:33:25    

bonjour
 
je réalise un Select et rempli un dataset avec mes données que j'enregistre par la suite en fichier XML par la fonction  
 

Code :
  1. myFileXML = new XmlDataDocument(MydataSet);
  2. myFileXml.Save(MyPath);


ca fonctionne très bien sauf que mes champs qui sont nulles ne se retrouvent pas dans mon fichier xml.
donc exemple :  
Table NOM avec trois champs (ID,Nom,Prenom)
et si j'ai a une ligne de ma table Prenom qui est null et bien dans mon fichier XML je vais avoir ce ceci

Code :
  1. <row>
  2. <ID>2</ID>
  3. <Nom>Toto</Nom>
  4. </row>


et j'aimerais avoir ceci

Code :
  1. <row>
  2. <ID>2</ID>
  3. <Nom>Toto</Nom>
  4. <Prenom></Prenom>
  5. </row>


 
voila si qqun pourrait me dire comment y parvenir, est ce une propriété du dataset? un parametre à passer lors du passage a l'objet Xml? ou lors de la sauvegarde du fichier?
merci pour votre aide.

Reply

Marsh Posté le 28-02-2006 à 15:33:25   

Reply

Marsh Posté le 01-03-2006 à 09:17:27    

Question, comment fait tu ça pour le mettre dans un fichier xml? tu utilises bien la méthode writexml du dataset? ou tu ponds le truc toi même?

Reply

Marsh Posté le 01-03-2006 à 09:43:32    

non le constructeur XmlDataDocument peut prendre en argument un dataset pour le transformer en document Xml et par la suite je n'ai qu'a faire un Save de cet objet.
 

Code :
  1. myFileXML = new XmlDataDocument(MydataSet);


 
je fais ceci car je retravaille les noeuds par la suite dans mon code  (ajout d'attributs sur les noeuds etc...). Et tout ce qui est ajout etc... fonctionne très bien, mon unique probleme est juste qu'il manque donc des champs quand ceux ci sont nulles.
 
je ne sauvegarde le fichier en "dur" que plus tard dans le code.

Reply

Marsh Posté le 01-03-2006 à 13:58:15    

xml le fait comme ca c'est normal, si un champ est null, il n'affichera pas le node concerné, il faut transformer tout les null en un truc par défaut, soit "" pour les string, soit 0 pour les nombres ...
 
par contre quand le champ sera vide, il te sortira un truc du style :
 

Code :
  1. 1. <row>
  2.    2. <ID>2</ID>
  3.    3. <Nom>Toto</Nom>
  4.    4. <Prenom/>
  5.    5. </row>


 
sinon, tu a la métode GetXML du dataset qui te permet de sortir directement du xml sans passer par un XmlDataDocument


Message édité par bill_clinton le 01-03-2006 à 13:58:47
Reply

Marsh Posté le 01-03-2006 à 14:08:31    

ok merci alors je fai faire un CASE au niveau de ma requete SQL alors...
et ok pour la méthode GetXml mais comme j'ai dit par plus haut, c'est parce que je retravaille les noeuds par la suite dans mon code pour leur rajouter des attributs (utilisation de xsl par après)
 
merci quand meme pour votre aide :hello:

Reply

Marsh Posté le 02-03-2006 à 12:01:03    

C marrant c exactement le probleme que j'ai eu y a deux jours
 
pour ma part dans ma requete SQL j'ai fait
ISNULL(MonChamps,'') AS MonChamps
 
le probleme de cette méthode est que tu perds ton tipage de donnée => toutes tes datacolumns se transforment en String si tu utilises la meme fonction ISNULL pour tout tes champs (tu peux différencier ton ISNULL suivant ta colonne source => ISNULL(MonChamps,0) AS MonChamps)
 
après à toi de voir si c génant ou pas


---------------
Galerie Photo (Canon)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed