[C#] XML file naar SQL server

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 322510

Topicstarter
Beste Tweakers,

Momenteel werk ik aan een console application die XML files uit een hotfolder moet inlezen, en vervolgens moet de data uit de XML file naar een SQL SERVER 2012 gestuurd worden. Nu heb ik een aantal oplossingen gevonden voor dit probleem maar ik weet niet wat nu de "best practice" is.

De XML file is zo opgebouwd dat ik waarschijnlijk 2 tabellen nodig heb. Er is namelijk algemene info en daarnaast zijn er meerdere "jobs" die voor kunnen komen. Dit is er soms 1 maar kunnen er ook tientallen zijn.
Ik weet niet of het verder uitmaakt maar er zitten soms ook optionele attributen / elementen in de XML file die dus niet altijd voorkomen.

Mogelijkheden die ik gevonden heb:
- In C# code XML file uitlezen, ontleden en via entity framework naar een database schrijven (nieuw object aanmaken en elk element / attribuut koppelen aan het nieuwe object)
- Stored procedure waar ik de volledige XML string naartoe stuur en die de file laten ontleden.
- In C# een bulk insert doen m.b.v. een XSD file.

Mijn vraag: welke optie is de "best practice" of misschien zijn er andere opties die beter zijn dan bovengenoemde? En welke optie is het snelst?

Het genoemde proces zal zo'n 30 x per dag uitgevoerd worden en gaat om zo'n 40 verschillende attributen / elementen.

Hartelijk dank voor eventuele tips!

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Wat is je verwachte datagroei? Want 1200 (40x30) items per dag invoeren dan maakt de methode niet uit.

Dan zou ik gewoon kijken wat je in de rest van je app hebt zitten en of je daar niet iets van kan hergebruiken.

Acties:
  • 0 Henk 'm!

Anoniem: 322510

Topicstarter
Ik verwacht niet dat het enorm zal groeien. Het gaat om orders die geplaatst worden en dat zal misschien met een paar tientallen orders stijgen in de komende jaren maar ik verwacht niet meer dan 100 per dag.

Ik ben ook inderdaad niet bang dat snelheid heel erg een rol zal spelen omdat het aantal nog vrij laag is. Maar wat ik vooral wil weten is welke methode het beste gebruikt kan worden. Misschien raad je een bepaalde methode af om een bepaalde reden?

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 00:52
Als het om zo weinig data gaat zou ik zeggen: maakt iets wat werkt en breek er verder je hoofd niet over

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

Anoniem: 220206

Bekijk deze class eens: MSDN: SqlBulkCopy Class (System.Data.SqlClient)

En hier een goed artikeltje met voorbeeld: http://www.codeproject.co...ng-Data-Using-SqlBulkCopy

Lees alles, maar ik denk dat je vooral geïnteresseerd bent in: ,,Transferring Data from XML File to Database Table''

Success !

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
40 items is nou niet bepaald een bulk insert.

Een software engineer zal je doorgaans optie #1 aanraden, een dba optie #2. ;)
Ik vind zelf #1 meer maintainable.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

Anoniem: 220206

@Grijze vos

Ok, het is geen bulk insert. Maar de XML > DataTable > BulkInsert api maakt het wel even makkelijk :-)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 08-07 14:14
Grijze Vos schreef op maandag 12 november 2012 @ 11:50:
Een software engineer zal je doorgaans optie #1 aanraden, een dba optie #2. ;)
Ik vind zelf #1 meer maintainable.
Een DBA zou als het even kan een volledige applicatie in stored procedures bouwen. Zo zorgen ze dat ze nuttig blijven ;)

https://niels.nu


Acties:
  • 0 Henk 'm!

Anoniem: 220206

@Hydra PL/SQL toevallig :p :p

yuck, doet me denken aan een cms dat volledig in oracle is geschreven.... html uitspuwen in pl/sql.. echt :trollface:

[ Voor 67% gewijzigd door Anoniem: 220206 op 12-11-2012 12:13 ]


Acties:
  • 0 Henk 'm!

Anoniem: 322510

Topicstarter
Heb het inderdaad volgens optie #1 gedaan en dat werkt vooralsnog prima.

Bulkinsert leek me lastig omdat ik ook een substring nodig had van elementen.

Dank voor de reacties!
Pagina: 1