对数据表中的项目进行排序

我有一个包含名称的列的数据表。我想加载带有数据表的combobox,以便名称应按字母顺序排列,例如:名字以a开头。 第二个名字以b开头。如何在datatable中对数据进行排序。任何人都可以帮忙吗?

使用DataView:

DataTable dt; //comes from somewhere... DataView dv = new DataView(dt) dv.Sort = "Name ASC"; foreach(DataRowView drv in dv) //.... 

方法1

  // orderby "FistName" column EnumerableRowCollection query = from order in datatable.AsEnumerable() orderby datatable.Field("FirstName") select datatable; DataView view = query.AsDataView(); // bind to your combobox combobox.DataSource = view; combobox.DataBind() 

方法2 :如果使用DataSet

  DataTable datatable = dataSet.Tables["yourDataTable"]; DataView view = datatable .AsDataView(); view.Sort = "FirstName desc, LastName desc"; combobox.DataSource = view; combobox.DataBind(); 

参考: 使用DataView排序(LINQ to DataSet)

这是您正在寻找的答案 。

 DataTable MyDataTable; const string SortByClause = "[SomeCol] ASC"; MyDataTable.DefaultView.Sort = SortByClause ; 

使用类型化数据集在精确数据类型中创建数据表,例如我创建了一个dsAppointment

  DsAppointment dsAppointmentTmp = new DsAppointment(); DsAppointment dsAppointment = new DsAppointment(); //add all appointment dsAppointmentTmp.Appointment.AddAppointmentRow(name,start,end,body) //use select(filter,sort(name of columns) DataRow[] rows1 = dsAppointmentTmp.Tables[0].Select(string.Empty, dsAppointmentTmp.Tables[0].Columns[1].ToString()); foreach (DataRow thisRow in rows1) { dsAppointment.Tables[0].Rows.Add(thisRow.ItemArray); } 

// return dsAppointment sorted return dsAppointment;