- - PR -
DataTableの値だけクリア
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-07 12:49
VB.NETにてWindowsアプリケーションを開発しています。
DataTableにDBから値を入れてそれを元にActiveReportで帳票出力させています。 DataTableには一度DBから値を取得しています。 DataTableはこんな感じです。 コード 金額1 金額2 日付 01 1000 2000 02 3000 10000 わけあって上記の日付の部分は取得できないため、DataTableのコードを元に再度DBにアクセスしています。 コード 金額1 金額2 日付 01 1000 2000 2008/03/01 02 3000 10000 2008/02/01 2回目でようやく目的のデータが取得できるというような構造になっています。 次にコードと日付でソートをかけたいので、DataViewを使用してソートしました。 これを元のDataTableに戻したいのですが、DataTableのクリアメソッドでは構造までクリアしてしまいますし、クリアせずにDataTableに追加すると元のデータを持ったままなので2倍になってしまいます。 なんとかDataTableの値だけをクリアする方法はないでしょうか? 色々調べましたが、新たなDataTableにコピーしてバインドと言う形を取っているものばかりでした。 やはりこうするしかないのでしょうか?? ActiveReport側でこのDataTableを利用した処理は完成しているので、それを今更変更したくないのです。。。 どうかよろしくお願いいたします。 | ||||
|
投稿日時: 2008-03-07 12:53
DataTable.Rows.Clear()
| ||||
|
投稿日時: 2008-03-07 13:36
というか DataView は所詮 View なので、データの元となる DataTable の行をクリアしてしまったら DataView の行も空になるのですが。
// DataView.ToTable して DataTable.Rows.Clear して一つずつ ImportRow? [ メッセージ編集済み 編集者: Hongliang 編集日時 2008-03-07 13:37 ] | ||||
|
投稿日時: 2008-03-07 14:52
dataTable.DefaultView.Sort = "コード,日付"; dataTable = dataTable.DefaultView.ToTable(); じゃだめですか? 「わけあって」も気になりますね。別サーバとかだったらしょうがないけど。 |
1