Ordinare un DataTable
pubblicato il 21/05/2008
Niente di più facile: si entra in un bar un po' "in" e si chiede al barista: "Un DataTable, senza ghiacco!"; secondo me, si corre anche il rischio di vedere arrivare qualcosa, probabilmente molto alcolico.
Scherzi a parte, qui si tratta di ordinare secondo un criterio a nostro piacimento, un DataTable: ovviamente se questo deriva direttamente da un database, conviene farci restituire il DataTable già ordinato. Tuttavia vi sono circostanze in cui il DataTable viene creato dinamicamente in memoria, disconnesso da qualsiasi database; questo viene poi popolato ed infine deve essere ordinato: come fare?
Public Function Order(source As DataTable, criteria as String)
As DataTable
Dim result As New DataTable
Dim
rows() As DataRow
rows = source.Select("",
criteria)
For Each row As DataRow In
rows
result.ImportRow(row)
Next
Return
result
End Function
Public Sub Order(source As DataTable, criteria as
String)
source.DefaultView.Sort = criteria
End
Sub
La routine è talmente semplice che non vale neanche la pena di scriverla, ma usare direttamente la prorietà Sort della DefaultView del DataTable.
Un'ultima cosa: in entrambi i casi il parametro criterio deve essere valorizzato come se fosse parte della clausola ORDER BY di Sql: perciò, ad esempio:
Order(sourceDataTable, "IdCliente ASC")
