2009-09-14 4 views
2

J'ai écrit un DataSet dans un fichier XML en utilisant .WriteXML (FileName), et la propriété DataSetName de l'ensemble de données est la balise de premier niveau dans le fichier. Toutefois, lorsque j'essaie de lire le fichier dans un DataSet différent en utilisant .ReadXML (FileName), le DataSetName n'est pas modifié à la valeur de la balise de niveau supérieur. Est-ce que je fais quelque chose de mal, ou est-ce que ReadXML n'est pas censé définir le DataSetName? Juste me semble étrange que l'écrit sur, mais ne sera pas lu dansComment lire dans un DataSetName à partir d'un fichier XML en utilisant ReadXML() dans .Net?

Voici mon code d'écriture, le fichier XML, et le code de lecture.

Rédaction:

dsNewReport.DataSetName = "Rejected" 
dsNewReport.WriteXml(My.Application.Info.DirectoryPath & "/Reports/Incomplete/" & fileName) 

Le XML résultant:

<?xml version="1.0" standalone="yes"?> 
<Rejected> 
    <SearchData> 
    //SNIP 
    </SearchData> 
</Rejected> 

lecture:

dsSearchReport.ReadXml(My.Application.Info.DirectoryPath & "/Reports/Incomplete/Search_" & Search_SEQ_GUID & ".xml") 
If dsSearchReport.DataSetName = "Rejected" Then 
    return True 
    'DataSetName = dsSearchReport after the read  
End IF 

Répondre

2

ReadXml n'a pas été conçu ou n'a pas été chargé de définir le nom de votre DataSet - vous devrez le faire vous-même.

Bien sûr - dans votre cas, vous voulez le définir au niveau du nom de la racine - mais ce n'est peut-être pas ce que tout le monde veut. Quelqu'un d'autre pourrait vouloir le mettre au nom de fichier - ou même quelque chose de complètement différent. En guise de compromis, la fonction ReadXml ne fait rien du tout - elle ne touchera en aucun cas votre nom DataSet de quelque façon que ce soit. Il n'y a pas d'erreur de votre part - c'est comme ça.

Marc

+0

compréhensible, mais WriteXML définit le nom du niveau de la racine à la DataSetName ... bizarre, hein? –

+0

bien, encore une fois - je suppose qu'ils ont dû choisir une sorte de défaut, et le nom que vous avez donné le DataSet semblait logique. Je suis d'accord - il peut être utile d'avoir un paramètre sur ReadXml pour indiquer que vous souhaitez utiliser le nom de l'élément racine en tant que nom DataSet - il n'est tout simplement pas là (encore?) .... –

Questions connexes