- PR -

【ASP.NET C#】ソートしたデータセットが更新できない

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-01-24 22:22
 なんだか自信がなくなってきた。他の人の質問に対して「あなたの周りの、あなたの仕事に関係のない人に質問して…」と書くのは、自分がそうやってきたからです。それで、最近はほぼ一回で理解してもらえているんだけどなぁ。天狗になってたかなぁ。。。


引用:

PoHさんの書き込み(2005-01-24 10:58)より:

dataview.TableでDataTableを取得できるのは確認済でしたが、ソート前の情報を取得するようでしたので使用していませんでした。

Viewでソートした場合はDataView(index).Rowで取得するのはできたのですが、これをうまく活用する方法がわかりませんでした。


 ソートされていないのは、データテーブルにソートという概念がないからです。データテーブルというか、データベースに。SELECTの結果の順序は不定です。一見、登録順に取り出せているようですが、それは内部のハッシュテーブルがたまたまそのようになっているからです。データベースは"データの集合"なので、順序はありません。データベースのテーブルをコピーするDataTableにも、順序はありません。
 このため、順序が必要なら、“必要になるごとにソートしてやります”。

 DataView(index).Rowは、DataTable.Rows(index)そのものです(斜字体注意)。このプロパティから取り出したDataRowを、目的のDataRowを継承したクラスにキャストして、その中の値を変更すれば、元のDataTableの値が変更されます。やってみてください。

_________________

スキルアップ/キャリアアップ(JOB@IT)