Veröffentlicht 15. Oktober 200816 j Wie kann ich Daten in einer DataTable sortieren? Ich habe 3 Spalten und möchte die Daten nach der ersten Spalte sortieren. Gruß Nadine
15. Oktober 200816 j 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)
15. Oktober 200816 j Autor *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!
15. Oktober 200816 j 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.
16. Oktober 200816 j Autor 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]
16. Oktober 200816 j 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
16. Oktober 200816 j 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 200816 j von TDM
16. Oktober 200816 j Autor 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 :-)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.