- - PR -
TreeViewにつかうリレーションセット 親子孫
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-02-13 17:07
TreeViewにどっぷり中です。
まだ、調査中のことばかりで、たびたびお世話になってます。 TreeViewに、複数のテーブルをセットしたいのですが、いい方法が浮かびません。 親(TableA)、子(TableB)、孫(TableC)の階層でテーブルがあり、 リレーションをセットしたいのです。 親、子までならばうまくいきます。 myDataset.Relations.Add("Lists", myDataset.Tables("TableA").Columns("ID"), myDataset.Tables("TableB").Columns("ID")) For Each rowCate In myDataset.Tables("TableA").Rows n1 = New TreeNode() n1.Text = rowCate("ID").ToString TreeView1.Nodes(0).Nodes.Add(n1) For Each rowSort In rowCate.GetChildRows("Lists") n2 = New TreeNode() n2.Text = rowSort("ID").ToString n1.Nodes.Add(n2) #For〜 ここにTableCをセットしたい Next# Next Next TableBのFor文の中に、TableCのIDをセットする方法で悩んでいます。 力ずくですが、以下のような方法を試しましたが、うまくいきません。 TableBのFor文でセットされているIDを親と見せかけて、TableCも子と見せかける。 * myString = "Select * From TableB Where ID =" & CInt(rowSort("ID")) " Dim myDataAdapter As New OleDbDataAdapter(String.Format(myString), Application("conn").ToString) myDataAdapter.Fill(myDataset, "TableB1") myDataset.Relations.Add("Lists2", myDataset.Tables("TableB").Columns("ID"), myDataset.Tables("TableC").Columns("ID")) * 相当恥ずかしいTryで、情けないところです・・・何かアドバイスがありましたら、 どうぞ、よろしくお願いいたします。。 |
|
投稿日時: 2003-02-14 17:55
自己レスなのですが、とりあえず解決しました。
#ただし処理に時間が掛かりすぎるので、他の方法を考えなければならないかもしれません。 #For〜 ここにTableCをセットしたい Next# のところに、TableA, TableBでリレーションを張ったものを親として、 TableCを子のリレーションを新たに張る方法を考えていたのですが、 うまくいきませんでした。 なので、TableA, TableBのリレーションをForで回す中で、 TableA,B,Cのキー「ID」をWhereに入れたTableCを開け、 * For Each rowCate2 In myDataset.Tables("TableC").Rows n3 = New TreeNode() n3.Text = rowCate2("ID").ToString n2.Nodes.Add(n3) Next と、してみました。(でも、ホントに遅い・・・) 質問も、自己レスも、よくわからないままで読まれた方にも申し訳ないです。 結局、一対多対多で繋がっているテーブルのリレーションを作る方法が、 思いつかないので、もし、何かありましたら今後ともよろしくお願いいたします。 (特に何もなければ、消えていって構いません;;) |
1