2013-11-12 2 views
2

У меня есть DataView с нанесенным на него Sort. Я не могу назначить/скопировать Sorted Состояние DataView в DataTable.Как назначить Sorted DataView для DataTable с сохранением Sorted State с использованием C#?

Сортировка DataView с колонкой 'Расстояние':

DataTable table=GetData(); 
DataView view = table.DefaultView; 
view.Sort = "Distance"; 

это работает отлично.

Но когда я присвоить этот DataView к DataTable он * россыпей отсортированном ГОСТу *.

DataTable dt = (view.Table); 

Это освобождает отсортированном государству исполнения DataView Любая идея? Пожалуйста, исправьте мой код, если что-то не так.

Итак, я хочу назначить/скопировать отсортированный DataView в DataTable без потери сортированного состояния.

+0

является таблицей и dt теми же таблицами? – Grundy

+0

нет! добавленный больше посмотрите пожалуйста ...! –

ответ

4

Использовать view.ToTable() вместо view.Table. См. Ниже фрагмент

DataTable table=GetData(); 
DataView view = table.DefaultView; 
view.Sort = "Distance"; 

DataTable dt = view.ToTable(); 
+0

Отлично! Это работает :) Спасибо! –

+0

@SHEKHARSHETE Добро пожаловать ") –

0

Вы можете напрямую получить данные в самом Datatable.

DataTable table=GetData(); 
table.DefaultView.Sort="Distance"; 
table=table.DefaultView.ToTable(); 
0

Вот очень эффективный способ, чтобы написать своего рода одна линия, которая поддерживает сортировку по DataView в родительском DataTable.

table = new DataView(table, "", "Distance", 
        DataViewRowState.CurrentRows).ToTable() 
Смежные вопросы