C# 对数据表中的项进行排序
我有一个datatable,其中有一列包含名称。我想加载带有datatable的combobox,这样名称应该按字母顺序排列,例如:名字以a开头。 第二个名称以b开头。我如何对数据表中的数据进行排序。有人能帮忙吗?使用数据视图:C# 对数据表中的项进行排序,c#,C#,我有一个datatable,其中有一列包含名称。我想加载带有datatable的combobox,这样名称应该按字母顺序排列,例如:名字以a开头。 第二个名称以b开头。我如何对数据表中的数据进行排序。有人能帮忙吗?使用数据视图: DataTable dt; //comes from somewhere... DataView dv = new DataView(dt) dv.Sort = "Name ASC"; foreach(DataRowView drv in dv) //....
DataTable dt; //comes from somewhere...
DataView dv = new DataView(dt)
dv.Sort = "Name ASC";
foreach(DataRowView drv in dv)
//....
方法1
// orderby "FistName" column
EnumerableRowCollection<DataRow> query =
from order in datatable.AsEnumerable()
orderby datatable.Field<string>("FirstName")
select datatable;
DataView view = query.AsDataView();
// bind to your combobox
combobox.DataSource = view;
combobox.DataBind()
参考资料:您正在寻找的
DataTable MyDataTable;
const string SortByClause = "[SomeCol] ASC";
MyDataTable.DefaultView.Sort = SortByClause ;
使用类型化数据集
在精确数据类型中创建datatable
例如,我创建了一个约会
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);
}
//返回已排序的约会
回复预约 非常简单,这是一个很好的解决方案。我认为应该是DataRowView而不是DataRow:foreach(DataRowView dr in dv)
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);
}