2012-11-30 41 views
5

Tôi muốn sắp xếp dữ liệu có thể định vị bằng cách sử dụng chỉ mục cột không có tên cột. Tôi có thể làm điều này với SQL bằng cách sử dụng ORDER BY 2 hoặc ORDER BY 3 DESC, 4 DESC. Nhưng đối với các vấn đề về hiệu năng DB, tôi muốn thực hiện điều này bằng cách sử dụng hiệu suất CPU.DataTable Sắp xếp sử dụng số cột thay vì tên cột

Vậy làm cách nào để thực hiện điều đó trong C#?

Ví dụ, mà không phải là làm việc cho tôi:

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

Trả lời

4

Hãy thử phương pháp này:

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

thay vì

sortColumn = "3 desc, 4 desc";

bạn có thể sử dụng

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

+0

Như tôi đã nói tôi có thể có sortColumn = "3 desc, 4 desc". Vì vậy, đôi khi tôi không có một chỉ mục. –

+2

Bạn đã thử dt.Columns [3] .ColumnName + "DESC," + dt.Columns [4] .ColumnName + "DESC" ;? –

+0

Cảm ơn, đã giải quyết được sự cố. –

1

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

Các vấn đề liên quan