2009-07-02 7 views
0

Ich habe ein Problem mit dem Sortieren einer DataTable. Ich verwende DataView.Sort und dann DataView.ToTable(), um die sortierte Tabelle zu erhalten. Dann gehe ich Zeile für Zeile durch die Tabelle und erstelle Knoten in einer TreeView, die in einer Desktop-Anwendung angezeigt wird.Führt DataView.ToTable() eine absteigende Sortierreihenfolge?

Mein Problem ist, dass ich die Daten in aufsteigender Reihenfolge sortieren kann und es in der TreeView in einer korrekten Weise angezeigt wird, aber wenn ich den gleichen Sortiermechanismus verwenden, aber nur die Reihenfolge zu absteigend ändern, funktioniert es nicht.

Aber vielleicht liegt das Problem in der DataView.ToTable Funktion. Bleibt dies in absteigender Reihenfolge oder muss ich das selbst beheben, wenn ich Knoten in meinem TreeView erzeuge, indem ich die DataRows in umgekehrter Reihenfolge durchführe?

In der Hoffnung, dass jemand das weiß.

Antwort

0

Warum verwenden Sie DataView nicht für Wiederholungszeilen? Aus Ihrer Frage sehe ich keine Notwendigkeit, sortierten Inhalt von einer Tabelle in eine andere Tabelle zu kopieren. Denken Sie daran, dass die Datenansicht nur eine sortierte und gefilterte Tabellendarstellung ist.

So sollten Sie so etwas schreiben:

foreach (DataRow NextDataRow in DataView) 

statt

foreach (DataRow NextDataRow in DataTable.Rows) 
1

fand ich die Antwort auf mein Problem!

Das Problem war nur, dass ich die Sortierung auf zwei Spalten, wie folgt: "ColumnA, ColumnB DESC" und ich habe bis jetzt nicht realisiert, dass der "DESC" Teil nur für die zweite Spalte gelten würde. -Dumm von mir.

Aber danke für die Antwort sowieso. Ich werde diesen Ansatz verwenden, wenn ich durch DataView gehe.

/Ylva