[英]Sorting a ADO.NET Datatable
I have a datatable in C#. 我在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");
I want to sort in by the column SortOrder & assign it to a gridview. 我想按列SortOrder排序并将其分配给gridview。 I used this:
我用过这个:
gdvMainList.DataSource = dtClientMedications.DefaultView.Sort[7];//dtClientMedications;
gdvMainList.DataBind();
But it gives index out of bound exception. 但它给出了索引超出范围的异常。
You are missing what the Sort
property is in fact. 您实际上缺少
Sort
属性。
It is the expression that you want to sort. 这是您要排序的表达式。 A
string
value, not index of columns. string
值,而不是列的索引。 Your code tries to read the 6th char
in an assumed existing sort string
, no more! 您的代码尝试在假定的现有排序
string
读取第6个char
,不再需要!
Use 使用
dtClientMedications.DefaultView.Sort = "SortOrder";
Before data binding. 在数据绑定之前。
gdvMainList.DataSource = dtClientMedications.DefaultView; // You may not need to mention view
gdvMainList.DataBind();
. 。
Documentation: http://msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx 文档: http : //msdn.microsoft.com/en-us/library/system.data.dataview.sort.aspx
Sort
is string property. Sort
是字符串属性。
Use, 使用,
dtClientMedications.DefaultView.Sort="ID"
您可以对表本身中的列进行排序:
dtClientMedications.Columns["SortOrder"].SetOrdinal(0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.