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
compréhensible, mais WriteXML définit le nom du niveau de la racine à la DataSetName ... bizarre, hein? –
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?) .... –