2012-11-30 41 views
5

我想使用列索引而不是列名对数据表进行排序。我可以通过使用ORDER BY 2ORDER BY 3 DESC, 4 DESC与SQL做到这一点。但对于数据库性能问题,我希望通过使用CPU性能来实现这一点。DataTable使用列号而不是列名进行排序

那么我该如何做到这一点在C#?

例子,这不是为我工作:

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

回答

4

试试这个方法:

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

,而不是

sortColumn = "3 desc, 4 desc";

可以使用

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

+0

正如我所说我可以有sortColumn =“3 desc,4 desc”。 所以我有时候没有一个索引。 –

+2

Did you try dt.Columns [3] .ColumnName +“DESC”+ dt.Columns [4] .ColumnName +“DESC”;? –

+0

谢谢,问题解决了。 –

1

dt.DefaultView.Sort = dt.Columns [index] .ColumnName +“DESC”;