www.mikrocontroller.net

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


Autor: Billy __ (slowflyer)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Billy __ (slowflyer)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Billy __ (slowflyer)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.