对 ADO.NET 数据表进行排序

asm*_*sma 3 c# asp.net sorting datatable gridview

我在 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");
Run Code Online (Sandbox Code Playgroud)

我想按 SortOrder 列排序并将其分配给 gridview。我用过这个:

gdvMainList.DataSource = dtClientMedications.DefaultView.Sort[7];//dtClientMedications;
gdvMainList.DataBind();
Run Code Online (Sandbox Code Playgroud)

但它给出了索引越界异常。

Mel*_*igy 5

你错过了Sort财产实际上是什么。

它是您要排序的表达式。一个string值,而不是列的索引。您的代码尝试读取char假定的现有排序中的第 6个string,不再!

dtClientMedications.DefaultView.Sort = "SortOrder";
Run Code Online (Sandbox Code Playgroud)

数据绑定前。

gdvMainList.DataSource = dtClientMedications.DefaultView; // You may not need to mention view
gdvMainList.DataBind();
Run Code Online (Sandbox Code Playgroud)

.

文档:http : //msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx