- - PR -
[ASP.net]親子リレーション時のRowFilterにて絞込み
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-07-14 14:23
いつも参考にさせて戴いております。
RowFilterにて親TABLEと子TABLE『親子関係(1対N)』の絞込みを行い、 いずれかヒットしたデータのみDataGridへ表示したいのですが...(・・:wink: DataGridへ表示するのは、親TABLEの情報を一覧形式にて表示です。 --------- 親Table:ID, CHILD_ID, VAL_1 'Tables(0) 子Table:ID, SVAL_1, SVAL_2 'Tables(1) ※子がない場合は、CHILD_ID = NULL --------- Dim oDataSet As DataSet Dim oDataViewManager As DataViewManager oDataSet = Me.GetDataSet() 'SqlDataAdapterにて親Tableと子Tableを取得 oDataViewManager = New DataViewManager(oDataSet) If Not oDataViewManager.DataSet.Tables(0).Rows.Count.Equals(0) Then Dim oRelation As System.Data.DataRelation = New System.Data.DataRelation("REL_ID", oDataViewManager.DataSet.Tables(0).Columns("CHILD_ID"), _ oDataViewManager.DataSet.Tables(1).Columns("ID"), False) oDataViewManager.DataSet.Relations.Add(oRelation) End If '↓ここから煮詰まり状態 oDataViewManager.DataViewSettings(1).RowFilter = "SVAL_1 LIKE '%キーワード%' OR SVAL_2 LIKE '%キーワード%'" oDataViewManager.DataViewSettings(0).RowFilter = "(CHILD_ID IS NOT NULL AND (COUNT(Child(REL_ID).ID) > 0)) OR VAL_1 LIKE '%キーワード%'" '↑ここまで煮詰まり状態 Me.DataGrid1.DataSource = oDataViewManager.CreateDataView(oDataViewManager.DataSet.Tables(0)) Me.DataGrid1.DataBind() --------- と、RowFilterにて絞り込むとキーワードと一致しない子データまで表示されてしまいます。 「DataViewSettings(1).RowFilter」の辺りの使い道が間違っているのでしょうけど... 過去ログを参照しながらあれこれ試してはみたのですが...(ノ_・、) http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9944&forum=7 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=9453 今ひとつ解りづらいかもしれませんが、ご指摘・アドバイス等がありましたら よろしくお願い致します。 [環境]Windos2000+ASP.NET+SQLServer2000+IE5.5 -------- [追記] DataViewSettings(0).RowFilter = "(CHILD_ID IS NOT NULL ... としてますが、とりあえず "CHILD_ID IS NULL" データについては後回し考え です。 [ メッセージ編集済み 編集者: えんぞ@見習 編集日時 2004-07-14 14:38 ] [ メッセージ編集済み 編集者: えんぞ@見習 編集日時 2004-07-14 14:44 ] |
1