| |

VB.NET - Ein- und UmsteigerDataGridView <-> XML - best practice? | |  | Autor: Xcabur | Datum: 13.06.10 18:40 |
| Hallo zusammen
Da wir uns in der Schule relativ intensiv mit XML, DTD, XMLSchema usw. befasst haben und ich nun ein kleines Programm schreiben möchte, welches Daten aus einer Tabelle speichern soll, dachte ich: Perfekt, ich schreibe die TabellenDaten einfach in ein XML.
Naja ich musste feststellen, dass es doch ein, zwei Hürden gibt... wahrscheinlich auch weil ich mich mit DataGridView nicht so auskenne, daher wollte ich mal nach dem empfohlenen Weg fragen.
Was soll in meinem Programm geschehen:
1a. Neues Projekt erstellen --> erzeugt leere Tabelle
1b. Bestehendes Projekt öffnen --> DataGridView Tabelle soll aus XML geladen werden
2. Tabelle wird durch User abgefüllt
3. Tabelle in XML speichern.
Ich erstelle die Tabelle wie folgt:
Private Sub cmdNeu_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdNeu.Click
Dim dtTest As New System.Data.DataTable("Daten")
dtTest.Columns.Add("Spalte1")
dtTest.Columns.Add("Spalte2")
dtTest.Columns.Add("Spalte3")
Dim dvTest As New DataView(dtTest)
dgvTest.DataSource = dvTest
End Sub Gespeichert wird sie so:
Private Sub cmdSchreiben_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdSchreiben.Click
Dim dtTest As New System.Data.DataTable("Daten")
Dim dvTest As New DataView
dvTest = dgvTest.DataSource
dtTest = dvTest.Table
dtTest.WriteXml("test.xml", System.Data.XmlWriteMode.WriteSchema)
End Sub Zu erst habe ich das XML File ohne Schema geschrieben, hatte dann das Problem beim lesen, dass nur die Spalten erstellt wurden, welche auch Daten enthielten. Spaalten ohne Daten wurden nicht ins XML geschrieben und somit war die Spalte unbekannt.
Die Tabelle wird wie folgt gelesen:
Private Sub cmdLesen_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdLesen.Click
Dim dtTest As New System.Data.DataTable("Daten")
Dim dvTest As New DataView()
Dim dsTest As New System.Data.DataSet
dsTest.ReadXml("test.xml", XmlReadMode.ReadSchema)
dtTest = dsTest.Tables("Daten")
dvTest.Table = dtTest
dgvTest.DataSource = dvTest
dgvTest.DataSource = dvTest
End Sub Muss ich wirklich den Umweg über das DS machen? Direkt ins DT konnte ich nicht lesen, da sich DT offensichtlich nicht mit der Option ReadSchema verträgt.
Ich hätte nun hauptsächlich gerne gewusst, ob dieser Weg gangbar ist oder ob es eine einfachere/bessere Möglichkeit gibt.
Konkret habe ich auch noch zwei Probleme:
1: Wie krieg ich es hin, dass im XML einem Knotenname z.B. Spalte1 verwendet wird und für den Spalten Header im DGV ein Caption z.B. Spalte 1. Wenn ich im Spaltenname beim Erzeugen einen Blank drinn habe krieg ich im XML so was wie "Spalte_x0002_1" -> Klar Blanks sind als XML-Knoten nicht zulässig, aber kann ich da irgendwie einen HeaderText mit geben, der automatisch gelesen wird?
2. Mein XML Root Element heisst nun immer <NewDataSet> kann ich das ändern?
Danke schon einmal für die Inputs... |  |
 DataGridView <-> XML - best practice? | 1.387 | Xcabur | 13.06.10 18:40 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|