简体   繁体   English

对ADO.NET数据表进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM