VB.net: Classi, XML e dataset

giovedì 24 gennaio 2008 - 14.30

Bacca Profilo | Newbie

Slave a tutti

Dopo aver letto un po' di documentazione riguardante i dataset e gli XML, mi è venuto in mente di creare una classe che esponesse come proprietà direttamente dei valori di un XML passando per un dataset in questo modo:

Supponiamo di avere un file xml così:

<Ordine>
<Nome>Prova</Nome>
</Descrizione>
<Lavori>
<H unit="mm">1000</H>
<L unit="mm">500</L>
<Colore>Giallo</Colore>
</Lavori>
<Lavori>
<H unit="mm">2000</H>
<L unit="mm">100</L>
<Colore>Verde</Colore>
</Lavori> <Lavori>
<H unit="mm">1500</H>
<L unit="mm">1500</L>
<Colore>Blu</Colore>
</Lavori>
</Ordine>

Il file xml è molto più complesso ma in questo c'è tutto quello che mi serve...

Io vorrei fare una classe "Ordine" di questo tipo:

Public class Odine

Private ds As New DataSet
Private Table As DataTable

Public Sub New(ByVal pathxml As String)
Me.ds.ReadXml(pathxml)
Me.Table = ds.Tables("Ordine")
End Sub

Public Property Name()
Get
Return Me.Table.Rows(0).Item("Nome")
End Get
Set(ByVal value)
Me.Table.Rows(0).Item("Nome") = value
End Set
End Property

Public Property Description()
Get
Return Me.Table.Rows(0).Item("Descrizione")
End Get
Set(ByVal value)
Me.Table.Rows(0).Item("Descrizione") = value
End Set
End Property

End Class

e fin qui va tutto bene... (Se sbaglio già qualcosa ditemelo!)

Ma poi vorrei fare una proprietà del tipo:

Public ReadOnly Property ListaQuadri() As List(Of Quadro)
Get
Dim TabellaLavoro As DataTable = Me.Table.Rows(0).Item("Lavori")
Dim retList As New List(Of Quadro)
For Each row As DataRow In TabellaLavoro.Rows
Dim newQC As New Quadro(row)
retList.Add(newQC)
Next
Return retList
End Get
End Property

Il principio sarebbe:
Come costruisco la classe ordine, passando un percorso di un xml, allo stesso modo vorrei costruire una classe Quadro a cui passo una riga di una tabella.

Ma trovo un errore alla prima riga della get:
Dim TabellaLavoro As DataTable = Me.Table.Rows(0).Item("Lavori")
Mi dice che la colonna "Lavori" non fa parte della tabella "Ordine"

Come posso fare per accedervi, e per accedere agli attributi?

Grazie per l'attenzione

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5