Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie kann man die Reihenfolge der Spalten in einer DataTable ändern?
dirkil
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

Wie kann man die Reihenfolge der Spalten in einer DataTable ändern?

beantworten | zitieren | melden

Durch Aufruf einer externen Methode, auf die ich keinen Einfluß habe, bekomme ich ein DataTable Objekt als Ergebnis zurück. Die Nutzer meiner Applikation können die Reihenfolge der Spalten angeben, in der das Ergebnis dargestellt werden soll.

Auf den ersten Blick erscheint es mir, das einfachste zu sein, die Reihenfolge der Spalten im DataTable Objekt zu ändern. Leider muß ich .NET 1.1 verwenden und wie es aussieht, gibt es dort nicht die Methode DataColumn.SetOrdinal, die es in 2.0 gibt.

Hat jemand eine Idee, wie ich die Reihenfolge ändern könnte?

Spontan fallen mir 2 Möglichkeiten ein:
1.) Ein neues (leeres) DataTable Objekt anlegen, die Columns aus dem original kopieren und in der richtigen Reihenfolge einfügen. Danach über die Rows iterieren und entsprechend eintragen. Da ich höchstwahrscheinlich nie viele Rows im Ergebnis habe, dürfte das gangbar sein.

2.) Ein Objekt eigenes DataTableSpecialOrder Objekt von DataTable ableiten und die Zugriffsmethoden auf Rows und Columns überschreiben. Allerdings hätte ich ein wenig Bedenken, daß ich wirklich alle relevanten Stellen erfasse.

Hat irgend jemand eine bessere Idee?
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Die Darstellung ist doch losgelöst von den Daten... will sagen dass man z.B: in einem DataGrid über ColumnStyles usw. festlegen kann welche Spalten man in welcher Reihenfolge anzeigen will.... und DA musst du ansetzen... nicht bei den Daten sondern erst bei der Darstellung.
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
dirkil
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

@Programmierhans

Das ist im Prizip richtig. Allerdings ist auch dieser Code nicht unter meiner Kontrolle.

Meine Aufgabe ist es, eine entsprechend gefüllte DataTable zu liefern, das dann an ein Syncfusion Grid gebunden wird. Das Grid wird je nach Anwendung auch an andere DataTables gebunden und liegt in einer anderen Assembly und kann nicht geändert werden.

Ich hätte das auch anders entworfen, aber wann ist man als Consultant schon mal auf der grünen Wiese? Wie üblich ist für Refactoring keine Zeit und kein Geld da.
private Nachricht | Beiträge des Benutzers