データセットの一括削除(全件削除)

解決


モモ  2005-07-09 11:02:34  No: 123335

VB.NETです。
読み込んだデータセットを全件削除したいのですが、
DsCustomers1.Customers.Rows(0).Delete()
のように1行ずつをループさせながら削除する方法しか分かりません。
これですと処理が遅い気がします。
全件一括して削除する簡単なコードがありましたら
教えて頂けますでしょうか。
よろしくお願い致します。


オショウ  2005-07-09 19:45:02  No: 123336

データセット自体をDisposeして、また新たにNewすればダメ?
でしょうか・・・
以上。


通ってみた  2005-07-09 21:15:39  No: 123337

>>処理が遅い気がします。

試してみた?


モモ  2005-07-10 02:52:42  No: 123338

レスありがとうございます。
フォームオープン時に常に全件削除するような
コード(1レコード単位の削除)を入れているのですが、
開くまでに一瞬止まったような感じになっています。
教えて頂いた方法でやってみますね。


特攻隊長まるるう  2005-07-12 01:24:01  No: 123339

>フォームオープン時に常に全件削除するような
>コード(1レコード単位の削除)を入れているのですが、
>開くまでに一瞬止まったような感じになっています。
フォームオープン? Form_Load 時はフォーム上の
コントロールが全て作成されますので、多少遅いです。
データベースに繋いでいる場合は、初回、接続を確立する
部分のみで時間が掛かる事が多いです。正確に、どこで
時間が掛かっているか調べないと、何の解決にもならない
場合があります。

>読み込んだデータセットを全件削除したいのですが、
データセットは非接続型なので、提示されたコードでは
データベースの変更はしていない…という解釈で良かった
でしょうか?DataSet に Customers というプロパティは
ありません。
>        ds.Tables("Customers").Rows(0).Delete()
と解釈して、その繰り返しなら
>        ds.Tables("Customers").Rows.Clear()
でもいいかも?もちろんオショウさんの方法でもいいでしょうが。

…結局削除するなら読み込む必要さえ無いのですが…?


モモ  2005-07-20 04:43:35  No: 123340

解決しました。ありがとうございました。


通りすがり  2005-07-20 22:58:12  No: 123341

どう解決したのか書こうね。


...  2005-07-21 00:52:11  No: 123342

問題の解決で恩恵を受けた人が、
問題・解決・参照リンクなどを簡潔に記述し、
まとめとして投稿しましょう。
情報を送ってくれた人たちへのお礼も大事ですけれど、
もっと大事なのは掲示板を支えている人々への情報のフィードバックです。
そうすれば同じようなトラブルが起きたときの助けとなります。
そしてまとめの掲示することによって、
あなたは、掲示板から恩恵を受ける(take)立場から、貢献する(give)立場に変わるのです。 
ギブ・アンド・テイク(give & take)、これがコミュニティを支えます。


モモ  2005-07-30 01:51:11  No: 123343

すみません、勘違いで解決していませんでした。
まず、共通クラス(データセットの中身まで取得するクラス)を使用
するのがプログラミング上のルールでしたので、
オショウさんの方法は使用することが出来ませんでした。
次に特攻隊長まるるうさんの方法
> dsSyohinList.Tables("T_商品リスト").Rows.Clear()
では削除してくれませんでした。
> dsSyohinList.T_商品リスト.Clear()
もダメでした。
解決したと思っておりましたが、よく見ると
1件ずつ削除(全件ループ)のコードが残っていた状態でしたので
すっかり出来たものと思っていました。
本当に申し訳ございません。
ArrayListの場合はClearコマンドで全件削除してくれるのに
データセットではダメなのでしょうか…
とりあえずDeleteコマンドをループさせておりますが、
もしお分かりでしたらご教授下さいませ。
よろしくお願い申し上げます。


特攻隊長まるるう  2005-07-30 02:21:20  No: 123344

DataRowCollection.Clear メソッドはローカルでテストした
限り、こちらでは何の問題もなく削除が実行されます。
>共通クラス(データセットの中身まで取得するクラス)を使用
が怪しいですが、こちらに伝わってる情報は何もありませんし、
再現するサンプルコードを示すか、もっと原因を追求した
情報がないとどうしようもありません。


通ってみた  2005-07-31 03:21:36  No: 123345

先に言うと、自分、なんのこっちゃわかっておりませぬ・・・が、動きを考えるだけならそんなモノは関係ないので、案を出してみます

1:Clearで消す
2:しぶといヤツが残ってないかチェックする
3:しぶといヤツだけDeleteで消す

とかどうでしょう?


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加