我有一个有10列的DataTable,我想按照从最大到最小的列索引10对表进行排序。我知道这对某些人来说应该很容易,但这是我第一次使用这样的DataTable
我发现的所有网站都说你必须知道列名,但我没有那个,并希望通过列的索引值引用该列。应该对该数据中的所有行进行排序
答案 0 :(得分:2)
您可以使用DefaultView和ColumnName进行排序。
dataTable.DefaultView.Sort = dataTable.Columns[9].ColumnName + " DESC";
工作示例:
DataTable dt = new DataTable();
//Define columns to DataTable
dt.Columns.Add("Id");
dt.Columns.Add("Name");
//Adding rows to DataTable
DataRow row1 = dt.NewRow();
row1["ID"] = 1;
row1["Name"] = "Jack";
dt.Rows.Add(row1);
DataRow row2 = dt.NewRow();
row2["ID"] = 2;
row2["Name"] = "Fruit";
dt.Rows.Add(row2);
DataRow row3 = dt.NewRow();
row3["ID"] = 3;
row3["Name"] = "Ball";
dt.Rows.Add(row3);
dt.DefaultView.Sort = dt.Columns[1].ColumnName + " ASC";
foreach (DataRowView drv in dt.DefaultView)
{
for (int i = 0; i < dt.Columns.Count; i++)
Console.WriteLine(drv[i]);
}
答案 1 :(得分:1)
尝试
DataTable dt = new DataTable();
//Then fill values
DataView dv = dt.AsDataView(); // DataView dv = dt.DefaultView();
dv.Sort = dv.Table.Columns[index].ColumnName + " DESC";
dt = dv.Table;