31. juli 2003 - 12:15Der er
4 kommentarer og 1 løsning
Bruge xml som data storage
Jeg har set at mange .NET apps bruger XML formattet til at indeholde forskellig data, såsom indstillinger osv. Så det vil jeg gerne lære med det samme, så lad os starte med noget simpelt.
Jeg har en listbox. Denne listbox skal loade Items, fra en XML fil. Så skal jeg have en 'Add New Item' knap, som skal tiløje en ny ListItem, og som så også skal gemmes i XML filen. Og når næste gang programmet åbner, loades den nye item fra XML filen.
XML indhold kunne f.eks være: <?xml version="1.0" encoding="utf-8" ?> <Item>="Ny Item"</Item> <Item>="Endnu en Item"</Item>
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Jeg vil anbefale dig at bruge dataset, datarow, og datacolumn til at oprette en "ofline" tabel. På den måde kan du så gemme direkte i XML og loade det frem igen, når der bliver brug for det.
Jeg har lavet en eksempel, hvor der er en listbox(lb), to knapper (btnSaveXML) og (btnLoadXML). Koden herunder bruger så dataset, datatable, og datacolumn til at hente værdierne i listboxen og gemme dem som xml og ligeledes henter dem frem igen.
Dim dc As New DataColumn, dt As New DataTable, dr As DataRow
Private Sub btnSaveXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveXML.Click Dim item As String dc.ColumnName = "Name" dc.DataType = System.Type.GetType("System.String") dt.Columns.Add(dc) For Each item In lb.Items dr = dt.NewRow dr("Name") = item dt.Rows.Add(dr) Next Dim ds As New DataSet ds.Tables.Add(dt.Copy) ds.WriteXml("C:\test.xml") End Sub
Private Sub btnLoadXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadXML.Click Dim ds As New DataSet ds.ReadXml("C:\test.xml") dt = ds.Tables("table1") lb.DataSource = dt lb.DisplayMember = "Name" End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.