データベースのストアド プロシージャから返されたデータを保持する 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 内のどの列でユーザーが注文するかを指定する整数変数です。デバッグ中に、LINQ ステートメントの直後に、sortedRows が _rowArray と同じシーケンスを同じ順序で保持していることがわかります。私も試しました:
_rowArray = _rowArray.OrderBy(r => r[columnIndex]).ToArray();
そしてDataView(ビュー)を作成しようとしましたが、これを行いました:
view.Sort = m_data.Tables[0].Columns[columnIndex].ColumnName + " ASC";
...しかし、それはうまくいきませんでした。誰でも洞察を提供しますか?