PDA

View Full Version : [.NET] DataSet to XML



Katzenjammer
17th September 2009, 15:41
Ho un SqlDataAdapter che riceve il risultato di una query da più tabelle del database e li riversa in un DataSet.


Dim command As New SqlCommand("TESTO QUERY", myConnection)
Dim adapter As New SqlDataAdapter(command)
Dim dataset As New DataSet

adapter.fill(dataset)

Il DataSet ha un metodo suo bello preconfezionato che scrive tutto su xml (DataSet.WriteXml).

Ecco cosa succede:

- <Data_20090917>
- <Table>
<Barcode>164891</Barcode>
<UserName>Cippalippo</UserName>
<Cognome>Rossi</Cognome>
<Nome>Gianni</Nome>
<Indirizzo>Via XX Settembre</Indirizzo>
<Citta>Ferrara</Citta>
<Tipo_Documento>CI</Tipo_Documento>
<N_Documento>12421</N_Documento>
<Comune_Nascita>Bologna</Comune_Nascita>
<Data_Nascita>21/10/1987</Data_Nascita>
<Descrizione>Stadio Mazza</Descrizione>
<Emissione>0A1845B4874A69DA</Emissione>
<Annullo>A82E7D04C516750A</Annullo>
<Data_Emissione>07/09/2009</Data_Emissione>
<Carta>A0052582</Carta>
<Serie_Emissione>00064891</Serie_Emissione>
<Serie_Annullo>00064896</Serie_Annullo>
<Annullato>true</Annullato>
<Operatore_Emissione>STA</Operatore_Emissione>
<Validato>true</Validato>
<Titolo_Evento>Sette</Titolo_Evento>
<Id_Evento>1</Id_Evento>
<Data_Evento>17/09/2009</Data_Evento>
<Tagliando>1</Tagliando>
</Table>

Questo è l'xml che mi sputa fuori.

Io decido il nome della radice, lui mi crea un <Table> per ogni riga della query, e lo riempe con i valori presenti nelle colonne (ogni tag dentro <Table> è una colonna della query).
Ho bisogno che tutto venga fuori ordinato per Titolo_Evento, quindi che <Table> non sia la riga della query ma il Titolo_Evento.

Sto googlando, ma se qualcuno già sa se è possibile farlo e come taglio i tempi :nod:

Mosaik
17th September 2009, 15:52
Che framework usi?
Se stai sul 3.5 dai un occhio a LINQ ti permette di fare un po' di tutto :)

Katzenjammer
17th September 2009, 16:07
Che framework usi?
Se stai sul 3.5 dai un occhio a LINQ ti permette di fare un po' di tutto :)
Si, uso 3.5, ma ho proposto di usare il LINQ e mel'hanno rifiutato >_>
Non chiedermi perchè.

NoeX
18th September 2009, 07:55
LINQ a quanto ricordo funziona solo con SQL Server, cmq per il tuo problema non ho trovato niente neanche io, però è possibile farlo in un altro modo, ovvero usando XSLT per la trasformazione del file XML. Soluzione più diretta per manipolare doc xml
Spero di aver capito bene il tuo problema

Mosaik
18th September 2009, 15:05
La figata di LINQ è proprio che funziona su qualsiasi oggetto che sia IEnumerable :D

Se non puoi usarlo onestamente non mi viene nulla in mente -.-