[vb.net] Database XML -> Dataset... dichiarare un attributo

martedì 28 agosto 2007 - 18.09

seven.7 Profilo | Junior Member

stò realizzando un database xml però ho questo problema... nel sorgente scrivo:

Dim ds As New Data.DataSet
ds.DataSetName = "Realizzazioni"
ds.Tables.Add("Software")
ds.Tables("Software").Columns.Add("ID")
ds.Tables("Software").Columns.Add("Titolo")
ds.Tables("Software").Columns.Add("Descrizione")
ds.Tables("Software").Columns.Add("Versione")
ds.Tables("Software").Columns.Add("Tipo")
Dim row(4) As String
row(0) = "1"
row(1) = "2"
row(2) = "3"
row(3) = "4"
row(4) = "5"
ds.Tables("Software").Rows.Add(row)
ds.WriteXml(Application.StartupPath + "\software.xml")

e giustamente il risultato è:

<?xml version="1.0" standalone="yes"?>
<Realizzazioni>
<Software>
<ID>1</ID>
<Titolo>2</Titolo>
<Descrizione>3</Descrizione>
<Versione>4</Versione>
<Tipo>5</Tipo>
</Software>
</Realizzazioni>

per una quistione mia come posso fare in modo da avere :

...
<Software ID=1>
<Titolo>2</Titolo>
...

Non sono riuscito a trovare nulla di concreto o meglio semplice da capire in rete per questo a voi chiedo.... AIUTO :D:D:D:D thanks

0v3rCl0ck Profilo | Guru

Ciao,

è sufficiente cambiare il ColumnMapping della colonna del DataTable:

ds.Tables("Software").Columns("ID").ColumnMapping = MappingType.Attribute


Enjoy It
http://blogs.dotnethell.it/Regulator/

seven.7 Profilo | Junior Member

Ho risolto con il codice seguente solo che adesso ho problemi con la codifica perchè non mi visualizza correttamente i caratteri speciali tipo € e lettere accentate... come faccio a implementare la codifica? da codice?

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
Dim fileExists As Boolean
fileExists = My.Computer.FileSystem.FileExists(Application.StartupPath + "\software.xsd")
If fileExists = False Then
Dim ds1 As New Data.DataSet
ds1.DataSetName = "Programmi"
ds1.Tables.Add("Software")
ds1.Tables("Software").Columns.Add("ID")
ds1.Tables("Software").Columns("ID").ColumnMapping = MappingType.Attribute
ds1.Tables("Software").Columns.Add("Titolo")
ds1.Tables("Software").Columns.Add("Descrizione")
ds1.Tables("Software").Columns.Add("Versione")
ds1.Tables("Software").Columns.Add("Tipo")
ds1.Tables("Software").Columns.Add("Vendite")
ds1.Tables("Software").Columns.Add("Profitto")
ds1.Tables("Software").Columns.Add("Data")
ds1.WriteXmlSchema(Application.StartupPath + "\software.xsd")
End If
Dim ds As New Data.DataSet
fileExists = My.Computer.FileSystem.FileExists(Application.StartupPath + "\software.xml")
If fileExists = True Then
ds.ReadXml(Application.StartupPath + "\software.xml")
End If
ds.ReadXmlSchema(Application.StartupPath + "\software.xsd")
Dim dr As DataRow = ds.Tables(0).NewRow
dr("ID") = Me.soft_id.Text
dr("Titolo") = Me.soft_title.Text
dr("Descrizione") = Me.soft_descr.Text
dr("Versione") = Me.soft_ver1.Value & "." & Me.soft_ver2.Value
dr("Tipo") = Me.soft_type.SelectedItem
dr("Vendite") = "0"
dr("Profitto") = "€ 0"
dr("Data") = My.Computer.Clock.LocalTime.Date.ToLongDateString
ds.Tables(0).Rows.Add(dr)
ds.WriteXml(Application.StartupPath + "\software.xml")
End Sub

Teech Profilo | Expert

Non capisco perchè vuoi memorizzarlo formattato...
Se devi memorizzare il valore di 150,25€ è sufficiente memorizzare il valore 150,25 poi quando visualizzi il dato in una Form o in altro ambito lo formatti come meglio credi...

Spero di esserti stato d'aiuto
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

seven.7 Profilo | Junior Member

ma ho il problema anche con le parole accentate
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