我有一個DataGridView,它包含從數據庫上的存儲過程返回的數據。每個返回值的列都不相同,因此不要使用強類型名稱。我目前正在努力訂購這些,因爲數字列是按字符串排序的,例如。 1→10→11→15→2→25→3,而不是按價值。我已確認列的ValueType設置正確。我曾嘗試這樣的:OrderBy命名索引
var sortedRows = from row in _rowArray
orderby columnIndex
select row;
_rowArray = sortedRows.ToArray();
其中_rowArray是數據行的陣列,和是在DataGridView的DataSource,和columnIndex是哪一列在_rowArray用戶想要通過訂購一個整數變量指定。在調試時,我可以看到sortedRows按照相同的順序保存了與_rowArray相同的序列,緊跟在LINQ語句之後。我也曾嘗試:
_rowArray = _rowArray.OrderBy(r => r[columnIndex]).ToArray();
,並試圖建立一個數據視圖(視圖),這樣做:
view.Sort = m_data.Tables[0].Columns[columnIndex].ColumnName + " ASC";
...但是這並沒有奏效。任何人提供任何見解?
呈現其自身的問題。首先,它們可以是任何價值類型,而不僅僅是整數。其次,他們可能是空的。另外,我需要在解析爲Double,int等之前將r [columnIndex]強制轉換爲字符串。 – MrShoes
好吧,如果您不知道值類型,那麼您不能簡單地期望它被按整數排序: )。另一種方法是使用比較器對舊的方式進行排序。 –
我可以使用var dataType = dataGridView1.Columns [columnIndex] .ValueType; – MrShoes