2012-11-30 12 views
5

Vorrei ordinare un datatable utilizzando l'indice di colonna non con i nomi di colonna. Sono in grado di farlo con SQL utilizzando ORDER BY 2 o ORDER BY 3 DESC, 4 DESC. Ma per i problemi di prestazioni del DB, mi piacerebbe farlo utilizzando le prestazioni della CPU.DataTable Ordina utilizzando il numero di colonna invece dei nomi di colonna

Quindi, come faccio a farlo in C#?

esempio, che non è per me funziona:

sortColumn = "3 desc, 4 desc"; 
dt.DefaultView.Sort = sortColumn.ToString(); 
dt = dt.DefaultView.ToTable(); 

risposta

4

provare questo metodo:

dt.DefaultView.Sort = sortColumn; 
dt = dt.DefaultView.ToTable(); 

invece di

sortColumn = "3 desc, 4 desc";

è possibile utilizzare

sortColumn = dt.Columns[3].ColumnName + " DESC," + dt.Columns[4].ColumnName + " DESC";

+0

Come ho detto, potrei avere sortColumn = "3 desc, 4 desc". Quindi non ho un indice a volte. –

+2

Hai provato dt.Columns [3] .ColumnName + "DESC," + dt.Columns [4] .ColumnName + "DESC" ;? –

+0

Grazie, problema risolto. –

1

dt.DefaultView.Sort = dt.Columns [indice] .ColumnName + "DESC";

Problemi correlati