排序ADO.净数据表

本文关键字:数据表 ADO 排序 | 更新日期: 2023-09-27 18:07:55

我在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 &将它分配给gridview。我用的是:

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

但是它给出了index out of bound异常

排序ADO.净数据表

您忽略了Sort属性的实际含义。

是要排序的表达式。string值,而不是列的索引。您的代码试图读取假定存在的排序string中的第6个char,而不是更多!

使用

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

Sort是字符串属性

使用

,

dtClientMedications.DefaultView.Sort="ID"

可以对表本身的列进行排序:

dtClientMedications.Columns["SortOrder"].SetOrdinal(0);