Forum: PC-Programmierung .NET Daten aus einer XML Datei in DataGridView filtern


von Billy _. (slowflyer)


Lesenswert?

Hallo,

im Moment lade ich daten aus einer XML-Datei in ein DataSet. Dieses wird 
an ein DataGridView gebunden. Das funktionier soweit, es werden alle 
Spalten und Zeilen angezeigt (sortieren geht auch ohne Probleme). Nun 
möchte ich gerne eine Filterfunktion auf diese angezeigten Daten legen. 
Diese soll nach Eingabe eines Stichwortes alle Zeilen anzeigen, in denen 
dieses vorkommt (Beispiel wäre die Suchfunktion in div. Musikplayern).

So nun meine Frage: Wie kann ich effizient/einfach so eine Funktion 
umsetzen oder hat das Framewrok schon evtl. fertige dabei? Ideen und 
Vorschläge sind willkommen.

Ich hab mir bereits auch schon was überlegt, was ich aber für nicht so 
effizient halte, weshalb meine Frage enstanden ist:

 1. Lade Daten in DataSet "daten"
 2. Erzeuge ein DataSet "suchergebnis"
 3. durchsuche "daten" nach Stichwort
 4. wenn Stichwort in "daten" entdeckt, kopiere Datensatz in 
"suchergebnis"
 5. binde "suchergebnis" an das DataGridView und zeige das Ergebnis an

P.S. habe gerade ein DataView in der MSDN entdeckt, werd mir mal 
ansehen, obs damit vielleicht geht es heißt nämlich : "Stellt eine 
datenbindungsfähige, angepasste Ansicht einer DataTable zum Sortieren, 
Filtern, Durchsuchen, Bearbeiten und Navigieren dar."

Gruß, Willi

von Billy _. (slowflyer)


Lesenswert?

Ok,

hab eine weitere Lösung gefunden:

der DataView war schon die richtige Spur. Es gibt den DataViewManager, 
dem man Filter unter DataViewSettings zuweisen kann. Dann übergibt man 
als DataSource den DataViewManager und schon wird das Ganze gefiltert. 
(kurz: XML-Datei -> DataSet -> DataViewManager -> Filter -> 
DataGridView)

Nachteil ist, dass wenn man dem DataViewManger einen neuen Filter 
zuweist, wird die Anzeige nicht aktualisiert. Erst wenn ich mit new 
dynamisch einen neuen erzeuge und dem den Filter zuweise, dann geht's. 
Mal sehen ob es auch irgendwie anders geht.

So nun aber eine Folgefrage:

Beim Sortieren habe ich festgestellt, dass die Zahlen nicht nach Größe 
sondern nach String sortiert werden. Wie bringe ich dem System bei, dass 
es sich um Zahlen in manchen XML Daten handelt und es diese korrekt 
sortieren soll? An welcher Stelle sollte/kann es gemacht werden (XSL, 
DataSet, ViewManager oder GridView)?

Gruß Willi

von Billy _. (slowflyer)


Lesenswert?

Sortierproblem von Zahlen auch gelöst. Hier habe ich einfach ein xml 
Schema verwendet. In diesem kann man den Datentyp und versch. 
Restriktionen festlegen. Nun funzt auch alles. Ist vielleicht nicht der 
beste Weg, aber es tut.

P.S. Irgendwie schein ich einen Monolog zu führen. Woran das wohl liegt? 
Niemand Ideen parat? Oder einfach noch nie mit sowas befasst? Drücke ich 
mich nicht verständlich genug aus? Zu Abstrakt? Sollen das nächste Mal 
konkrete Beispiele rein?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.