Toon posts:

[c# .net + XML] Inlezen van xml bestand naar een dataset

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een Dataset1.xsd aangemaakt en handmatig een tabel toegevoegd met de naam XML_KM en twee kolommen: afzender , data. Ook heb ik een xml bestand aangemaakt:

XML:
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8" ?>
<xmlReport>
<report>
<afzender>nicky@gmail.com</afzender>
<data>100 km 200km 300km</data>
</report>
</xmlReport>


nu wil ik de data uit het xml betand inlezen op de volgende manier:

C#:
1
2
Dataset1 ds1 = new Dataset1();
ds1.ReadXml(@"C:\Documents and Settings\XMLFile1.xml");


Dit werkt niet, de dataset blijft leeg. Wanneer ik gewoon in de code een dataset aanmaak en deze probeer te vullen:

C#:
1
2
DataSet ds = new DataSet();
ds.ReadXml(@"C:\Documents and Settings\XMLFile1.xml");


Dan werkt het gewoon wel. Als ik vervolgens in de watch kijk naar de inhoud van DataSet ds heeft deze gewoon 1 table met 2 rijen. Waar gaat het fout?

[ Voor 9% gewijzigd door Verwijderd op 06-06-2005 11:15 ]


Verwijderd

Even voor alle duidelijkheid: Heb je een klasse DataSet1 aangmaakt die overerft van de klasse DataSet?

En waarom werkt het niet, wat is de fout?

[ Voor 19% gewijzigd door Verwijderd op 06-06-2005 11:11 ]


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Modbreak:Offtopic gezwans kan je ook via MSN, ICQ, mail, IRC doen. :)

[ Voor 99% gewijzigd door whoami op 06-06-2005 11:17 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:17
Je hebt een Typed Dataset. Die heeft dus al een 'structuur'.

Check ff de MSDN
The contents of an ADO.NET DataSet can be created from an XML stream or document. In addition, with the .NET Framework you have great flexibility over what information is loaded from XML, and how the schema or relational structure of the DataSet is created.

To fill a DataSet with data from XML, use the ReadXml method of the DataSet object. The ReadXml method will read from a file, a stream, or an XmlReader, and takes as arguments the source of the XML plus an optional XmlReadMode argument. (For more information about the XmlReader, see Reading XML Data with XmlTextReader.) The ReadXml method reads the contents of the XML stream or document and loads the DataSet with data. It will also create the relational schema of the DataSet depending on the XmlReadMode specified and whether or not a relational schema already exists.

The following table describes the options for the XmlReadMode argument.
ReadSchema Reads any inline schema and loads the data and schema.
If the DataSet already contains a schema, new tables are added from the inline schema to the existing schema in the DataSet. If any tables in the inline schema already exist in the DataSet, an exception is thrown. You will not be able to modify the schema of an existing table using XmlReadMode.ReadSchema.

If the DataSet does not contain a schema, and there is no inline schema, no data is read.

Inline schema can be defined using XML Schema definition language (XSD) schema. For details about writing inline schema as XML Schema, see Generating DataSet Relational Structure from XML Schema (XSD).
En ik denk dat je hier ook wel eea kunt uithalen.

[ Voor 5% gewijzigd door whoami op 06-06-2005 11:16 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Verwijderd schreef op maandag 06 juni 2005 @ 11:10:
Even voor alle duidelijkheid: Heb je een klasse DataSet1 aangmaakt die overerft van de klasse DataSet?

En waarom werkt het niet, wat is de fout?
Dat is inderdaad de bedoeling jah. Het werkt niet omdat de dataset niet gevuld wordt, ds1 van hierboven blijft leeg terwijl ds wel gevuld wordt.

Verwijderd

Dan is het zoals Whoami al zegt. Je moet een schema aanmaken voor je dataset.

offtopic:
Werken met typed datasets vind ik persoonlijk een slechte oplossing. Tot nu toe heb ik altijd met objecten gewerkt. .Net is niet voor niets OO.

Verwijderd

Topicstarter
Verwijderd schreef op maandag 06 juni 2005 @ 11:24:
Dan is het zoals Whoami al zegt. Je moet een schema aanmaken voor je dataset.

offtopic:
Werken met typed datasets vind ik persoonlijk een slechte oplossing. Tot nu toe heb ik altijd met objecten gewerkt. .Net is niet voor niets OO.
Ik ben inderdaad aan het zoeken tussen de oplossingen die Whoami heeft aangedragen. Om even in te gaan op je offtoppic commentaar, ik heb op dit moment geen andere keus.

Ik ben bezig met het presenteren van gegevens via Crystal Reports en voor zover ik nu kan zeggen moet je vooraf al een report aanmaken met de datavelden om er achteraf data aan te knopen. Daarom maak ik nu reports aan aan de hand van typed datasets, als er een andere oplossing is om dit te doen dan hoor ik het graag :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:17
DataSets zijn idd niet echt je van het vind ik. :X

Om met crystal reports te werken (en vrijwel ieder ander reporting system) heb je idd datasets nodig om het snelst tot resultaat te komen.

https://fgheysels.github.io/

Pagina: 1