- - PR -
DataTableから条件を指定してデータを取得する方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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) |
|
投稿日時: 2006-09-04 22:27
リレーションを張って、
まず親だけから検索して、 親のエントリと一致する子のエントリを探します。 DataSet での検索は、このような手順になりますので、このような手順に落とし込めるように、データベースから持ってきます。 |
1