我有一个 DataGridView,它保存从数据库上的存储过程返回的数据。每个返回值的列都不同,因此没有强类型名称。我目前正在努力订购这些,因为数字列被订购为字符串,例如。1 -> 10 -> 11 -> 15 -> 2 -> 25 -> 3,而不是按值。我已经确认列的 ValueType 设置正确。我试过这个:
var sortedRows = from row in _rowArray
orderby columnIndex
select row;
_rowArray = sortedRows.ToArray();
其中 _rowArray 是一个 DataRows 数组,是 DataGridView 的 DataSource,columnIndex 是一个整数变量,用于指定用户想要排序的 _rowArray 中的哪一列。在调试时,我可以看到 sortedRows 与 _rowArray 的顺序相同,紧跟在 LINQ 语句之后。我也试过:
_rowArray = _rowArray.OrderBy(r => r[columnIndex]).ToArray();
并尝试创建一个 DataView (视图)并做到了这一点:
view.Sort = m_data.Tables[0].Columns[columnIndex].ColumnName + " ASC";
……但这并没有奏效。有人提供任何见解吗?