[VB.NET] DataSet naar (custom) XML schrijven*

Pagina: 1
Acties:

  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
Ik heb het volgende probleem:

Ik maakt in Vb.Net een Dataconnection aan, daaraan maak ik een DataAdapter, deze heeft een SQL statement. Nu is het de bedoeling dat ik gegevens haal uit 2 tabellen, Functie en Persoon.
Onderstaande SQL heb ik daarvoor:
code:
1
SELECT Persoon.*, Functie.*  FROM Persoon, Functie Where Persoon.Deleted = 0 AND Functie.Deleted = 0


Dit alles wordt weer in een dataset gegooid en daarvan genereer ik een XML bestand. Nu is het zo dat ik het graag zo zou willen hebben:
code:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" standalone="yes"?>
    <DataSet xmlns="http://www.tempuri.org/DataSet.xsd">
        <Persoon>
            Velden...
        </Persoon>
        <Functie>
            Velden...
        </Functie>
     </DataSet>


Maar nu gooid ie alles onder elkaar en de overeenkomstige velden zoals bv, persoons_id maakt ie van:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" standalone="yes"?>
    <DataSet xmlns="http://www.tempuri.org/DataSet.xsd">
        <Table>
            <Persoon_ID>1</Persoon_ID>

            Andere velden van persoon...

            <Persoon_ID1>1</Persoon_ID1>

             Andere velden van Functie...

        </Table>
     </DataSet>


Dus ipv dat ie het netjes opdeeld zet ie alles onder elkaar en maakt ie van de dubbele namen dezelfde naam met een 1 erachter...
Hoe kan ik dit oplossen? Heb het al geprobeerd met een Inner Join maar ook daar kwam ik niet veel verder mee....

Never eat yellow snow...


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:15
Mja, als WriteXml niet voldoende is, dan zal er, denk ik niet veel anders opzitten dan door je result-set te lopen, en alles weg te schrijven zoals jij het wilt, mbhv een XmlTextWriter.

https://fgheysels.github.io/


  • BHR
  • Registratie: Februari 2002
  • Laatst online: 05-05 23:56

BHR

Denga schreef op woensdag 25 mei 2005 @ 12:09:
Onderstaande SQL heb ik daarvoor:
code:
1
SELECT Persoon.*, Functie.*  FROM Persoon, Functie Where Persoon.Deleted = 0 AND Functie.Deleted = 0
Defineer even koppeling tussen Persoon en Functie (bv: AND Persoon.persoonId = Functie.persoonId)
Oh, dat bedoelde je niet O-)

[ Voor 6% gewijzigd door BHR op 25-05-2005 12:17 ]

No amount of key presses will shut off the Random Bug Generator


  • D4Skunk
  • Registratie: Juni 2003
  • Laatst online: 20-10-2025

D4Skunk

Kind of Blue

Je moet je datatables apart loaden, en dan je dataset naar xml wegschrijven :
vanuit onze discussie op msn :

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
DataSet ds=new DataSet
Me.FirebirdDataAdapter.SelectCommand = Me.Commando
Me.Commando.CommandText = "SELECT * from persoon WHERE deleted = 0"
Me.Commando.Connection = Me.FirebirdConnectie
Me.FirebirdDataAdapter.Fill(ds,"Persoon")

Me.FirebirdDataAdapter2.SelectCommand = Me.Commando2
Me.Commando2.CommandText = "SELECT * from functie"
Me.Commando2.Connection = Me.FirebirdConnectie
Me.FirebirdDataAdapter2.Fill(ds,"Functie")

ds.WriteXML("vb.XML")


zie ook dit

[ Voor 21% gewijzigd door D4Skunk op 25-05-2005 13:10 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je kunt natuurlijk ook gewoon een XSLT loslaten op je "verkeerde" XML :Y)

[ Voor 25% gewijzigd door RobIII op 25-05-2005 13:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij