Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DataGridViewで自然順ソート
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30607#CommentId84542
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2021/6/23 19:18:45
やなやんさんはたなやんさんの同僚の方なのでしょうか。
> データの管理はDataTable一つのみで行っておりDataSetは使用していません。
自分のコードもそうですよ?
DataSet をバインドしているのであれば、DataSource だけでなく、
DataMember も指定しているはず。
そもそも、
Dim tbl As DataTable = Me.ds.Tables("File")
ですよね。実質的に使っているのは DataTable だけです。
つまり、DataGridView1.DataSource に割り当てているのは DataTable ですし、
Dim q = Me.ds.Tables("File").AsEnumerable() というのも、
Dim q = Me.yourTable.AsEnumerable() でしかありせん。
そして LINQ でソート後、複数行の DataRow を DataTable に復元するのは、
先に示した CopyToDataTable 拡張メソッドです。
なお、DataSource に割り当てられるインスタンスは、
CopyToDataTable によって、毎回、新しいテーブルに差し変わります。
そのため、
> Dim dt As DataTable = CType(DataGridView1.DataSource, DataTable)
などとするのではなく、最初に取得した DataTable / DataSet / DataView 等を
フィールド変数に保持しておき、それをソート対象にするのが良いと思います。