VB.NET - XML Daten lesen und in DataGrid schreiben
Hallo zusammen..
Bin neu hier und hab da ne kleine Frage, da ich nicht weiter komme.
Habe eine XML Datei die ich durch einen klick auf einen Button öffnen möchte, damit die Werte in ein DataGrid ausgegeben werden.
Hänge mal 2 Bilder mit der Oberfläche des Grid wo die Daten rein sollen, und den Ausschnitt aus der XML Datei wo die Daten eingelesen werden sollen.
Also hier soll das ganze ja rein:
Private Sub BtnOpenXml_Click(sender As Object, e As RoutedEventArgs) Handles BtnOpenXml.Click
End Sub
Bin auch im Bereich Programmierung Neu, und bräuchte evtl. Codebeispiele, wenn es machbar ist.
Danke schonmal.
Bin neu hier und hab da ne kleine Frage, da ich nicht weiter komme.
Habe eine XML Datei die ich durch einen klick auf einen Button öffnen möchte, damit die Werte in ein DataGrid ausgegeben werden.
Hänge mal 2 Bilder mit der Oberfläche des Grid wo die Daten rein sollen, und den Ausschnitt aus der XML Datei wo die Daten eingelesen werden sollen.
Also hier soll das ganze ja rein:
Private Sub BtnOpenXml_Click(sender As Object, e As RoutedEventArgs) Handles BtnOpenXml.Click
End Sub
Bin auch im Bereich Programmierung Neu, und bräuchte evtl. Codebeispiele, wenn es machbar ist.
Danke schonmal.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 537517
Url: https://administrator.de/forum/vb-net-xml-daten-lesen-und-in-datagrid-schreiben-537517.html
Ausgedruckt am: 25.04.2025 um 02:04 Uhr
35 Kommentare
Neuester Kommentar


Falsch, seh dir meinen Code mal genau an, vor allem der Typ der Klammern, das ist ja VB.Net und nicht c#!
.
Irgendwo ist noch der Wurm drin.
Ja falsch abgetippt in deinem Beispiel steht Load?
Das war nur ein Beispiel-Event das beim Laden der Form ausgeführt wird, kannst du ignorieren...
Du musst da ja auch den Namen des DataGrids nehmen den du diesem vergeben hast ...
DeinNameDesDataGridViews.DataSource = ds.Tables(0)
"DataGrid" kannst du nicht als Namen hernehmen der Name ist schon für das Steuerelement reserviert.
DeinNameDesDataGridViews.DataSource = ds.Tables(0)
"DataGrid" kannst du nicht als Namen hernehmen der Name ist schon für das Steuerelement reserviert.

Du hast es immer noch nicht verstanden! Den Namen des DataGridView-Steuerelements musst du da eintragen!!!!
Und dein verwendetes "Loaded" Event ist ebenfalls falsch das wird ausgeführt wenn der Button selbst geladen ist, man oh man ... Mach mal einen vernünftigen Grundkurs!
Ich bin raus.
Ciao.
Und dein verwendetes "Loaded" Event ist ebenfalls falsch das wird ausgeführt wenn der Button selbst geladen ist, man oh man ... Mach mal einen vernünftigen Grundkurs!
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ds As New DataSet()
ds.ReadXml("D:\demo.xml")
dgv.DataSource = ds.Tables(0)
End Sub
Ich bin raus.
Ciao.

Zitat von @ComX123:
Sorry.. Bin halt noch neu und gebe mein Bestes..
Da steht ja der Name.. In der Liste so wie bei dir, sehe ich den Namen hier nicht. Nur oben
Och mensch, siehst du's nich ??Sorry.. Bin halt noch neu und gebe mein Bestes..
Da steht ja der Name.. In der Liste so wie bei dir, sehe ich den Namen hier nicht. Nur oben
Augen auf und das Hirn benutzen, lautet die Devise.

Naja das DataGridView sollte man "vorher" auch im Designer markieren bevor man sich dahin begibt....
Ich sach ja Freidaaaach 🐟
Ich sach ja Freidaaaach 🐟

Dann sieht das folgendermaßen aus, hier ein Button mit dem Namen button1 und einem DataGrid mit dem Namen myDataGrid
Hättest du ebenfalls hier nachschlagen können:
https://www.c-sharpcorner.com/UploadFile/mahesh/load-an-xml-file-into-a- ...
Öfter mal auf Englisch suchen wenn du schon kein Handbuch nehmen willst.
Jetzt bist du dran.
Ciao.
Private Sub button1_Click(sender As Object, e As RoutedEventArgs) Handles button1.Click
Dim ds As New Data.DataSet
ds.ReadXml("D:\demo.xml")
myDataGrid.ItemsSource = ds.Tables(0).DefaultView
End Sub
Hättest du ebenfalls hier nachschlagen können:
https://www.c-sharpcorner.com/UploadFile/mahesh/load-an-xml-file-into-a- ...
Öfter mal auf Englisch suchen wenn du schon kein Handbuch nehmen willst.
Jetzt bist du dran.
Ciao.

Solltest du jetzt zwischenzeitlich schon gelernt haben ...
Is ja der Name.
Button und Grid is umbenannt.
Da macht er wieder nen Fehler.
Wenn ich stattdessen DataGrid schreibe, macht er den gleichen Fehler.
Logisch weil das ein reserviertes Wort der Klasse "DataGrid" ist und kein Objekt mit diesen Eigenschaften.Button und Grid is umbenannt.
Da macht er wieder nen Fehler.
Wenn ich stattdessen DataGrid schreibe, macht er den gleichen Fehler.
Hmm..
Wieso fährst du mit der Maus nicht mal über die roten Kringel dann sagt er dir was ihm missfällt in einem Popup...
Dann schau mal in deinen XAML Code ob das überhaupt umbenannt wurde und ob du den XAML-Code überhaupt schon gespeichert hast.
Wenn das stimmt. Codefenster schließen oder manuell aktualisieren. Ansonsten hast du schon was andere DInge in deinem Projekt verbockt, könnte ich mir bei dir sehr gut vorstellen => neu anfangen.
Wenn das stimmt. Codefenster schließen oder manuell aktualisieren. Ansonsten hast du schon was andere DInge in deinem Projekt verbockt, könnte ich mir bei dir sehr gut vorstellen => neu anfangen.

Checke auch auf Leerzeichen am Ende des Namens im Designer und im XAML ... Lass den Namen durch die Intellisense raussuchen und ergänze mit Tab, dann kannst du sicher sein, wenn dann am Ende des Namens ein _ steht hast du ein Leerzeichen reingepfuscht.
Solche Sonderzeichen in Namen zu verwenden ist auch nicht gerade best practice.
Solche Sonderzeichen in Namen zu verwenden ist auch nicht gerade best practice.

Ansonsten nimm den Unterstrich mal raus und benenne es bspw. DGLagerplaetze. Geht hier alles testweise einwandfrei.

Zitat von @ComX123:
ok, mach ich grade nochmal..
Wenn ich im VB Code DG_L... weg mache und nur DG schreibe, zeigt er keine weitere vervollständigung an.
STRG+LEERTASTE drücken, ansonsten ist dein Projekt wohl im Eimer oder du schreibst das ganze in den völlig falschen Code-Abschnitt.ok, mach ich grade nochmal..
Wenn ich im VB Code DG_L... weg mache und nur DG schreibe, zeigt er keine weitere vervollständigung an.

So wie ich das sehe schreibst du das nicht in die Klasse des Fensters bzw. du musst zum Verweisen auf das Steuerelement noch die Parent-Class vor dem Steuerelementnamen vorne anstellen. Deswegen auch das nicht auflisten des Steuerlemennts in der aktuellen Klasse.
Poste doch mal den ganzen XAML Code.
Poste doch mal den ganzen XAML Code.

Alles klar, dein DataGrid ist ja in einem UserControl enthalten und nicht im HauptCode, also musst du den InstanzNamen des UserControls auf deiner Form dem Namen des DataGrids vorneanstellen damit der Code ja weiß welches DataGrid in welchem Control du ansprechen möchtest.
Das zum Thema Programmiergrundlagen zum Thema Objekte und "Klassen", solltest du dir am Wochenende mal reinpfeifen.
Die Programmierweise oben wiederspricht aber eigentlich dem MVVM Konzept von WPF das mit Klassen und Objekten die Views mit Daten versorgen. Da solltest du dir in Zukunft mal das hier durchlesen.
https://www.dotnetforall.com/wpf-mvvm-practical-data-application-example ...
NameDerUserControlInstanz.DG_Lagerplaetze.ItemSource = .....................
Das zum Thema Programmiergrundlagen zum Thema Objekte und "Klassen", solltest du dir am Wochenende mal reinpfeifen.
Die Programmierweise oben wiederspricht aber eigentlich dem MVVM Konzept von WPF das mit Klassen und Objekten die Views mit Daten versorgen. Da solltest du dir in Zukunft mal das hier durchlesen.
https://www.dotnetforall.com/wpf-mvvm-practical-data-application-example ...

Das ist nicht der InstanzName sondern der Name des Templates. Von einem Template erzeugt man ja eine Instanz im XAML und der sollte man im XAML einen eigenen Namen geben.
Je nachdem wo das Control liegt ist auch evt ein zusätzlicher Klassenname anzugeben, je nachdem wie verachachtelt man das ganze angelegt hat. Nur fehlen hier leider die Bestandteile bzw. der XAML des MainWindows.
Je nachdem wo das Control liegt ist auch evt ein zusätzlicher Klassenname anzugeben, je nachdem wie verachachtelt man das ganze angelegt hat. Nur fehlen hier leider die Bestandteile bzw. der XAML des MainWindows.

Vielleicht verstehst du den Objekt-Zusammenhang hiermit etwas besser
Das x:Name="MyControl" musst du entweder selbst im XAML hinzufügen oder im Eigenschaften-Explorer rechts einen Namen vergeben, das macht der Designer nicht von selbst wenn man es per Drag n' Drop reinzieht.
https://www.wpf-tutorial.com/usercontrols-and-customcontrols/creating-us ...
Das x:Name="MyControl" musst du entweder selbst im XAML hinzufügen oder im Eigenschaften-Explorer rechts einen Namen vergeben, das macht der Designer nicht von selbst wenn man es per Drag n' Drop reinzieht.
https://www.wpf-tutorial.com/usercontrols-and-customcontrols/creating-us ...