So ändern Sie die Reihenfolge der datierbaren Spalten in c #.
Beispiel:
Ich bin erstellt SQL-Tabellentyp Reihenfolge ist Menge, Einheit, ID, aber im Programm DataTable Reihenfolge ist ID, Menge, Einheit. Übergeben Sie im Code Behind am direkt DataTable an den SQL-Tabellentyp, sodass die Tabellenreihenfolge unterschiedlich ist.
DataTable columns are: `Id,Qty,Unit.` I want this to be: `Qty,Unit,Id`
Bitte helfen Sie
Qty,Unit,Id
aber im Programm DataTable Reihenfolge istId,Qty,Unit
. Im Code Behind am wird DataTable direkt an den SQL-Tabellentyp übergeben, sodass die Tabellenreihenfolge unterschiedlich ist. Warum wird gefragt, wie die Spaltenreihenfolge geändert werden soll?Antworten:
Versuchen Sie, die DataColumn.SetOrdinal- Methode zu verwenden. Beispielsweise:
UPDATE: Diese Antwort erhielt viel mehr Aufmerksamkeit als ich erwartet hatte. Um Verwirrung zu vermeiden und die Verwendung zu vereinfachen, habe ich beschlossen, eine Erweiterungsmethode für die Spaltenreihenfolge in DataTable zu erstellen:
Verlängerungsmethode:
Verwendung:
oder
quelle
Qty,Id,Unit
Nur" geändert. Ich möchte diesQty,Unit,Id
.Dies basiert auf der Antwort des "Standardgebietsschemas", entfernt jedoch ungültige Spaltennamen, bevor die Ordnungszahl festgelegt wird. Dies liegt daran, dass wenn Sie versehentlich einen ungültigen Spaltennamen senden, dieser fehlschlägt und wenn Sie eine Prüfung durchführen, um zu verhindern, dass er fehlschlägt, der Index falsch ist, da Indizes überall dort übersprungen werden, wo ein ungültiger Spaltenname übergeben wurde.
quelle
Ich weiß, dass dies eine wirklich alte Frage ist. Und es scheint, dass sie beantwortet wurde. Aber ich bin mit derselben Frage hierher gekommen, aber mit einem anderen Grund für die Frage, und so hat eine etwas andere Antwort für mich funktioniert. Ich habe eine schöne wiederverwendbare generische Datagrid-Ansicht, die die bereitgestellte Datenquelle verwendet und nur die Spalten in ihrer Standardreihenfolge anzeigt. Ich habe Aliase, Spaltenreihenfolge und Auswahl auf Tableadapter-Ebene des Datasets in Designer eingefügt. Das Ändern der Auswahlabfragereihenfolge von Spalten scheint jedoch keine Auswirkungen auf die durch das Dataset zurückgegebenen Spalten zu haben. Ich habe die einzige Möglichkeit gefunden, dies im Designer zu tun, indem alle im Tableadapter ausgewählten Spalten entfernt und in der Reihenfolge hinzugefügt werden, in der sie ausgewählt werden sollen.
quelle
Wenn Sie mehr als 2-3 Spalten haben,
SetOrdinal
ist dies nicht der richtige Weg. DieToTable
Methode von DataView akzeptiert ein Parameterarray von Spaltennamen. Bestellen Sie dort Ihre Spalten:quelle
Wir können diese Methode zum Ändern des Spaltenindex verwenden, sollten jedoch auf alle Spalten angewendet werden, wenn mehr als zwei Spalten vorhanden sind. Andernfalls werden alle falschen Werte aus der Datentabelle angezeigt. ........
quelle
Daten nachbestellen Tabelle basierend auf einer Bedingung oder einem Kontrollkästchen aktiviert. PFB: -
quelle