- PR -

データセットの削除と再取得

1
投稿者投稿内容
ya_t
会議室デビュー日: 2005/12/06
投稿数: 4
投稿日時: 2005-12-06 18:46
VB.netのWindowsフォームで開発しています。

DataAdapterで取得したデータテーブルから
パラメータで抽出条件を設定して、データセットを取得し表示する処理で

1.Fillした直後のデータテーブルから取得できる条件(strSQL1)で
  データセットを作成する。

dr = DTbl.Select(strSQL1)

2.別の条件で合致したデータをデータテーブルから削除(Delete)

ArrDRow= DTbl.Select(strSQL2)
For Each DRow In ArrDRow
DRow.Delete()
Next

3.1.と同様の条件(strSQL1)で再度データセットを取得する

dr = DTbl.Select(strSQL1)

上記の処理を行うと、1と3で取得されるデータが異なってしまいます。

2の段階で、データを追加(Insert)した場合は、同じデータが取得できます。

上記のような状況となる原因お分かりでしたら、
ご教示お願いします。

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-12-06 19:24
2番で削除したから、ということではなくて?
「1と3で取得されるデータが異な(る)」というのは具体的にどう異なるんですか?
ya_t
会議室デビュー日: 2005/12/06
投稿数: 4
投稿日時: 2005-12-06 19:56
説明不足で、申し訳ありません。

2は違う条件のデータなので、3の抽出では元々対象外となっています。

1では2件しか取得されないのに(データから見てもこれが正解です)
3では4件取得されてしまいます。

よろしくお願いします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-12-06 22:30
NAL-6295です。

推測ですが・・・

3で同じデータを再度取得する際、
1で使ったDataTableのインスタンスにそのまま取得していませんか?
そうした場合、前回取得した内容が消えるわけではないので、単純に倍になります。
もし、同じインスタンスで再度取得する場合は、Rows.Clear()だったかな。を実行する必要があります。
1

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