Sarene Geschrieben 15. Oktober 2008 Geschrieben 15. Oktober 2008 Wie kann ich Daten in einer DataTable sortieren? Ich habe 3 Spalten und möchte die Daten nach der ersten Spalte sortieren. Gruß Nadine Zitieren
Guybrush Threepwood Geschrieben 15. Oktober 2008 Geschrieben 15. Oktober 2008 Erster Treffer bei der Suche nach DataTable sortieren: DataTable.DefaultView-Eigenschaft (System.Data) und weiterführend von da dann das DataView.Sort-Eigenschaft (System.Data) Zitieren
Sarene Geschrieben 15. Oktober 2008 Autor Geschrieben 15. Oktober 2008 *g* ich danke dir,...bin dieser MSDN-HIlfe sonst immer aus dem Weg gegangen, weil ich dachte die wäre für den Anfang zu kompliziert. Aber hat alles wunderbar geklappt! Zitieren
Guybrush Threepwood Geschrieben 15. Oktober 2008 Geschrieben 15. Oktober 2008 Ja das fällt vielen am Anfang komischerweise etwas schwer sich da zurecht zu finden. Wenn man den dreh aber erstmal raus hat merkt man schnell das die MSDN eine super hilfreiche Dokumentation ist. Zitieren
Sarene Geschrieben 16. Oktober 2008 Autor Geschrieben 16. Oktober 2008 Ja stimmt schon. Allerdings sitze ich jetzt wieder vor einem ähnlichen Problem. Ich habe die DataTable über das DataView sortiert. (Das sehe ich auch, wenn ich das DataView im Browser ausgebe) Nun will ich diese Inhalte in eine XML-Datei schreiben. Die Ausgabe erfolgt sortiert,...aber in der XML -Datei stehen sie wieder unsortiert. Siehe Code..ich schreibe die Daten über die DataTable in die XML -Datei (rote Schrift) Anscheinend kann ich den Inhalt der Dataview nicht einfach so in die DataTable schreiben?? *VERWIRRT*:confused: [COLOR="RoyalBlue"]Dim[/COLOR] tabelle [COLOR="RoyalBlue"]As[/COLOR] DataTable tabelle = DataTable_XML() [COLOR="RoyalBlue"]Dim[/COLOR] dtview [COLOR="RoyalBlue"]As DataView[/COLOR] = tabelle.DefaultView dtview.Sort = "deutsch_begriff,englisch_begriff DESC" tabelle = dtview.Table [COLOR="SeaGreen"] 'Hier werden die XML_Elemente erzeugt[/COLOR] [COLOR="RoyalBlue"]For[/COLOR] ih = 0 [COLOR="RoyalBlue"]To[/COLOR] tabelle.Rows.Count - 1 xmlEleItem2 = xmlDocu.CreateElement("Begriff") xmlEleDeutsch2 = xmlDocu.CreateElement("deutsch_begriff") xmlEleEnglisch2 = xmlDocu.CreateElement("englisch_begriff") [COLOR="Red"]xmlTextDeutsch =xmlDocu.CreateTextNode(tabelle.Rows(ih).Item(0).ToString) xmlTextEnglisch =xmlDocu.CreateTextNode(tabelle.Rows(ih).Item(1).ToString)[/COLOR] xmlEleDeutsch2.AppendChild(xmlTextDeutsch) xmlEleEnglisch2.AppendChild(xmlTextEnglisch) xmlEleItem2.AppendChild(xmlEleDeutsch2) xmlEleItem2.AppendChild(xmlEleEnglisch2) xmlDocu.DocumentElement.AppendChild(xmlEleItem2) [COLOR="RoyalBlue"]Next[/COLOR] Zitieren
SoL_Psycho Geschrieben 16. Oktober 2008 Geschrieben 16. Oktober 2008 Sollte deine DataTable von ner DB befüllt werden, versuch die Sortierung SQL seitig zu lösen, ist einfacher Falls nicht: Wenn ich es richtig verstehe, sortierst du ja nur die Ausgabe / Anzeige der DataTable, indem du das DataView sortieren lässt. Falls ich nicht falsch liege (hab hier keine Möglichkeit zum Testen grad ), bleibt der Inhalt der DataTable davon unberührt Zitieren
TDM Geschrieben 16. Oktober 2008 Geschrieben 16. Oktober 2008 (bearbeitet) Falls nicht: Wenn ich es richtig verstehe, sortierst du ja nur die Ausgabe / Anzeige der DataTable, indem du das DataView sortieren lässt. Falls ich nicht falsch liege (hab hier keine Möglichkeit zum Testen grad ), bleibt der Inhalt der DataTable davon unberührt Das stimmt. Das Konzept ist ähnlich eines SQL-Servers (Table, View), wenn du da eine View änderst, werden ja auch nicht die Primärschlüssel in der Tabelle geändert. [Edit] Man könnte ja jetzt einfach die Zeilen der View (und nicht der Tabelle) iterieren. Bearbeitet 16. Oktober 2008 von TDM Zitieren
Sarene Geschrieben 16. Oktober 2008 Autor Geschrieben 16. Oktober 2008 Das mit SQL werd ich mir merken... ich habe eigentlich gemeint, dass ich ein DataView mit einem DataTable fülle-->Das Dataview wird sortiert und anschließend sollen die Inhalte des Dataview SORTIERT in die DataTable übertragen werden. Ich habe es wie folgt gelöst: Dim tabelle As DataTable tabelle = DataTable_XML() 'hier wird der Inhalt für die DataTable erzeugt Dim view As DataView = tabelle.DefaultView view.Sort = "deutsch_begriff,englisch_begriff" ' Inhalt wird sortiert Dim newTable As DataTable = view.ToTable("XML_Tabelle", True, "deutsch_begriff", "englisch_begriff") 'neue DataTable mit sortiertem Inhalt Hier war der Schlüsselbegriff .ToTable("Tabellenname",Wahrheitswert,"Spalte1","Spalte2")...das heißt die Daten werden 1:1 rüberkopiert... klappt wunderbar jetzt :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.