Сортировка данных ADO.NET - PullRequest
       20

Сортировка данных ADO.NET

3 голосов
/ 06 сентября 2011

У меня есть данные в C #.

DataTable dtClientMedications = new DataTable();
dtClientMedications.Columns.Add("Id");
dtClientMedications.Columns.Add("MedId");
dtClientMedications.Columns.Add("BrandName");
dtClientMedications.Columns.Add("GenericName");
dtClientMedications.Columns.Add("Type");
dtClientMedications.Columns.Add("Dosage");
dtClientMedications.Columns.Add("Status");
dtClientMedications.Columns.Add("SortOrder");

Я хочу отсортировать по столбцу SortOrder и назначить его для вида сетки. Я использовал это:

gdvMainList.DataSource = dtClientMedications.DefaultView.Sort[7];//dtClientMedications;
gdvMainList.DataBind();

Но он выдает индекс из привязанного исключения.

Ответы [ 3 ]

3 голосов
/ 06 сентября 2011

Вам не хватает того, чем на самом деле является свойство Sort.

Это выражение, которое вы хотите отсортировать.Значение string, а не индекс столбцов.Ваш код пытается прочитать 6-е char в предполагаемом существующем виде string, не более!

Использовать

dtClientMedications.DefaultView.Sort = "SortOrder";

Перед привязкой данных.

gdvMainList.DataSource = dtClientMedications.DefaultView; // You may not need to mention view
gdvMainList.DataBind();

.

Документация: http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx

1 голос
/ 06 сентября 2011

Вы можете отсортировать столбцы в самой таблице:

dtClientMedications.Columns["SortOrder"].SetOrdinal(0);
1 голос
/ 06 сентября 2011

Sort является строковым свойством.

Используйте

dtClientMedications.DefaultView.Sort="ID"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...