- PR -

DataTableから条件を指定してデータを取得する方法

1
投稿者投稿内容
みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 2006-09-02 18:48
いつもお世話になっております。

DataSetにDBテーブルと同じ構造でデータが格納されていると
します。

SQL文で書くと下記のようなデータの取得をDataSetから行いたいのですが
方法が見つかりません。ご教授よろしくお願いいたします。

TABLE1の構造
AAA,BBB,CCC,KEY1,KEY2

SELECT *
FROM TABLE1
WHERE BBB <> (SELECT P.BBB
FROM TABLE1 P,TABLE1 C
WHERE P.KEY1=C.KEY1
AND P.KEY2=C.KEY2
AND P.AAA =C.CCC)

開発環境
VB.net 2005
Windows XP

試したことは下記の通りです。
TABLE1をコピーしてCopyTABLE1を作成
TABLE1とCopyTABLE1にリレーションをはる
この場合、下記のエラーが発生してしまいます。
”対応する親の値が指定されてない値があるため、この制約を有効にできません”
データの持ち方で発生するエラーのようですし、親子関係のテーブル結合ではないので
リレーションをはるのは難しいかと思いました。
他の方法等あれば、お教えください。よろしくお願いします。

ソースコード

Dim Pdc(2) As DataColumn
Pdc(0) = Myds.Tables(TABLE1).Columns("KEY1")
Pdc(1) = Myds.Tables(TABLE1).Columns("KEY2")
Pdc(2) = Myds.Tables(TABLE1).Columns("AAA")

Dim Cdc(2) As DataColumn
Cdc(0) = Myds.Tables(CopyTABLE1).Columns("KEY1")
Cdc(1) = Myds.Tables(CopyTABLE1).Columns("KEY2")
Cdc(2) = Myds.Tables(CopyTABLE1).Columns("CCC")

ds.Relations.Add("JOINDATA", Pdc, Cdc)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-09-04 22:27
 リレーションを張って、
まず親だけから検索して、
親のエントリと一致する子のエントリを探します。

 DataSet での検索は、このような手順になりますので、このような手順に落とし込めるように、データベースから持ってきます。
1

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