ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1844
1844
EMPFEHLEN
-
Hallo
Ich möchte gerne ein Datenset mit den Werten aus einer XML füllen und diese dann im Gridview ausgeben lassen.
Ich hab mir also ein DataSet angelegt, dort eine Tabelle drin erzeugt, die 4 Spalten enthält. Das ganze dann noch mit einem Gridview verknüpft (Member: die Datentabelle, Source: das DataSet). Nun lese ich die XML mit der DataSet.ReadXml-Methode (XmlReader) aus, wie es in der MSDN steht:
Code :1 2 3 4 5
string file = "Data.xml"; System.IO.FileStream fileStreamXML = new System.IO.FileStream(file, System.IO.FileMode.Open); System.Xml.XmlTextReader xmlReader = new System.Xml.XmlTextReader(fileStreamXML); XMLDataSet.ReadXml(xmlReader); xmlReader.Close();
Da an der Stelle keine Exception geworfen wird, nehme ich an das steht im DataSet. Wie bekomme ich nun das Gelesene in die DataTable und damit in das Gridview ?Gruß
Wizzy
-
Was sagt dir der Debugger? Sind die Daten da oder nicht?
-
Hallo Norbert,
offenbar ist in dem DataSet nichts drin, der Lookup sagt jedenfalls dass das DataSet Empty is
Eine Datenbank mittels ADO an ein GridView zu Binden ist ja kein Problem, aber ich will nicht extra für eine handvoll Einträge eine Datenbank aufsetzen... Irgendwie scheint das wohl nicht zu gehen. Im Netz findet man jedenfalls eigentlich nichts zu dem Thema.
Edit: Ich hab jetzt mal ein ListView genommen. Das Lässt sich etwas angenehmer Befüllen. Aber nur "etwas".
In meiner XML ist er nun beim Element "COL" (Column) angekommen. Für jede Spalte existiert ein Element mit dem jeweiligen Attribut, also 4 Spalten und 4 Attribute. Mit folgendem Reader traversiere ich die XML und befülle die ListView:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
XmlTextReader reader = new XmlTextReader("Data.xml"); try { while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "ROWHEADER": break; case "COLHEADER": for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); switch (reader.Name) { case "text": listView1.Columns.Add(reader.Value); break; case "width": listView1.Columns[i-1] .Width = XmlConvert.ToInt32(reader.Value); break; } } break; case "ROW": break; case "COL": reader.MoveToAttribute(0); switch (reader.Name) { case "text": ListViewItem item = new ListViewItem(reader.Value); item.SubItems.Add(reader.Value); item.SubItems.Add(reader.Value); item.SubItems.Add(reader.Value); listView1.Items.Add(item); break; } break; } break; } } } catch (Exception e) { MessageBox.Show(e.Message.ToString()); }
Wie gesagt befinden wir uns nun an der Stelle "COL" in der XML, dort wo nun die Zelle befüllt werden soll.
Nun laut der MSDN wird die listView mit dem Subitems und Items befüllt. Zwar füllt mir dieser Reader die Zellen, aber nur vertikal nicht horizontal - die Werte die in den Spalten stehen sollen, stehen in den Zeilen. Etwas Ähnliches passiert auch beim Setzen der Spaltenbreite, anstatt jede Spalte zu nehmen, nimmt er nur die erst Spalte und setzt das Attribut "Width" auf "200".
Zum besseren Verständnis hier noch die XML Datei.
Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
<?xml version="1.0" encoding="utf-8" ?> <ROOT> <ROWHEADER> <COLHEADER text="Programm" width="200" /> <COLHEADER text="Version" width="35" /> <COLHEADER text="Seriennummer" width="200" /> <COLHEADER text="Verwendet von..." width="200" /> </ROWHEADER> <ROW> <COL text="Windows XP" /> <COL text="SP3" /> <COL text="THISI-SASAM-PLESE-RIALN-UMBER" /> <COL text="PC 123" /> </ROW> </ROOT>
Wieso macht der das ?Geändert von WiZdooM (27.01.09 um 01:00 Uhr)
Gruß
Wizzy
Ähnliche Themen
-
HTML-Formular aus Java heraus befüllen und bedienen
Von Kilobyte im Forum JavaAntworten: 2Letzter Beitrag: 09.01.11, 11:32 -
GridView mit Daten aus DB befüllen
Von keks1984 im Forum .NET Web und KommunikationAntworten: 1Letzter Beitrag: 10.09.07, 13:23 -
Dataset befüllen und im CryatalReportViewer anzeigen!
Von meste im Forum .NET CaféAntworten: 0Letzter Beitrag: 04.11.06, 09:40 -
Daten von GridView in ein DataSet transferieren
Von raphk im Forum .NET DatenverwaltungAntworten: 1Letzter Beitrag: 17.11.05, 15:02 -
DataGrid befüllen aus Array (SOAP): ist der Zwischenschritt über DataSet sinnvoll?
Von volllulli im Forum .NET CaféAntworten: 0Letzter Beitrag: 06.09.05, 17:18





Zitieren
Login





