[C#] – Ordinare un DataTable…

Problema: ordinare un DataTable secondo un certo campo…
Soluzione: La soluzione sfrutta semplicemente la possibilit di ricorrere alla propriet sort della DataView. la funzione che chiameremo Sort, accetta tre parametri:
– dtTable: il datatable
– field: il campo su cui fare l’ordinamento
– sortOrder: ASC o DESC

Problem: How to order a DataTable
Solution: this solution simply use Sort property of DataView. Function name is Sort and has three params:
– dtTable: the datatable
– field: the key field on which we want sort the DataTable
– sortOrder: ASC or DESC
ecco il codice:
this is the code:

private DataTable Sort(DataTable dtTable, string field, string sortOrder)
{
string sortFormat = "{0} {1}";
dtTable.DefaultView.Sort = string.Format(sortFormat, field, sortOrder);
return dtTable.DefaultView.Table;
}

e se invece volessimo ordinare una tabella secondo campi diversi con diversi ordinamenti?
Tutto molto semplice, basta ricorrere sempre alla solita sort fornita dalla vista:

dtTable.DefaultView.Sort = "campo1 DESC, campo2 ASC ecc ecc";

facile vero?

Il mio consiglio, qual’ora non funzioni l’ordinamento quello di controllare bene il formato delle colonne, ovvero se intendete ordinare per data e notate che l’ordinamento non funziona, probabilmente il motivo che la colonna esibisce dati in formato testo e non data.

Commenti

commenti

2 pensieri su “[C#] – Ordinare un DataTable…”

  1. Giov… non ti chiedo a cosa serve dsSorted, ma non basterebbe scrivere:
    dtTable.DefaultView.Sort = columnKey + ” ” + sortDirection;
    ?
    diceve Henry Ford: tutto quello che non c’ non si rompe 😉
    Have fun 🙂
    Arkie
    p.s.
    Com’ il Mac 😛 ?

  2. in effetti il dsSorted non dovrebbe esserci 🙂
    e si, si potrebbe anche fare con una sola istruzione come hai scritto, ma volevo mostrare anche altre robette che possono tornare utili, diciamo pure che lo scopo non era l’ottimizzazione del codice 🙂
    Il mac è na scheggia…e…devo dire che sono tutti soldi ben spesi…non c’è nulla da dire, poi visto che ho dei rudimenti di linux ti lascio immaginare cosa è possibile fare da terminale… 🙂 🙂

Lascia un commento