Nous avons deux colonnes dans a DataTable
, comme ceci:
COL1 COL2
Abc 5
Def 8
Ghi 3
Nous essayons de régler ce problème datatable
sur la base COL2
dans l' ordre décroissant.
COL1 COL2
ghi 8
abc 4
def 3
jkl 1
Nous avons essayé ceci:
ft.DefaultView.Sort = "COL2 desc";
ft = ft.DefaultView.ToTable(true);
mais, sans utiliser a DataView
, nous voulons trier le DataTable
lui - même, pas le DataView
.
Cela vous aidera ...
la source
Son utilisation simple .Sélectionnez la fonction.
Et c'est fait ... Bon codage
la source
Select("", "CompanyName ASC")
.Peut-être que ce qui suit peut vous aider:
Ici, vous pouvez également utiliser d'autres requêtes d'expression Lambda.
la source
Avez-vous essayé d'utiliser la
Select(filterExpression, sortOrder)
méthode sur DataTable? Voir ici pour un exemple. Notez que cette méthode ne triera pas la table de données sur place, si c'est ce que vous recherchez, mais elle renverra un tableau trié de lignes sans utiliser une vue de données.la source
Ou, si vous pouvez utiliser a
DataGridView
, vous pouvez simplement appelerSort(column, direction)
:Ce qui vous donnerait le résultat souhaité:
la source
la source
Il existe 2 façons de trier les données
1) trier uniquement les données et les remplir dans la grille:
2) triez la vue par défaut qui ressemble à un tri avec un en-tête de colonne de grille:
la source
DataRow[] rows = dt.Rows.Cast<DataRow>().OrderBy(row => row.Field<string>("FIELD_NAME"), MyCustomComparer.Instance).ToArray();
Il s'avère qu'il existe un cas particulier où cela peut être réalisé. L'astuce consiste à créer le DataTable, à collecter toutes les lignes d'une liste, à les trier, puis à les ajouter. Cette affaire vient juste d'arriver ici.
la source
//J'espère que ceci vous aidera..
la source
TL; DR
utiliser
tableObject.Select(queryExpression, sortOrderExpression)
pour sélectionner les données de manière triéeExemple complet
Exemple de travail complet - peut être testé dans une application console :
Production
la source
essaye ça:
la source
DataTable sortedDT = new DataTable()
. 2) Vous devez utiliserImportRow
(vous ne pouvez pas ajouter de ligne à partir d'une table différente)