リレーションの使い方?

2006年の日記

こんにちは。 今日は歯医者に行ってきた岩崎です。

予定では、仮で詰めていたモノを取って、ちゃんとしたモノをかぶせる(?)予定だったのですが、20分の遅刻により受付を拒否されました。

こんな日に限って進捗の問題が発生。
定時に帰るのも怪しい感じだったのですが、歯医者を優先してくださいというコトで、なんとか退社。

急いで向かったのですが、無駄な時間となってしまいました。

しかし、歯の治療をしてから頭痛がヒドいので、それだけは相談しようと先生に会うコトにしました。

…が、なんだかバタバタしているみたいで、かなり待たされてしまいました。

その後、ようやく受け付けてもらえたのですが、「虫歯で頭痛なんて聞いたコトないよねぇ~」と言われて終了。

歯の治療は来週に回されました。

やっぱりダメなんですかね?今の歯医者さん。

とりあえず仮の歯で抜け出すワケにもいかないので、今の治療が終わったら考えてみようかと思います。

               - * -

さて、相変わらずASP.NETでの開発をしているワケですが、ちょっとした疑問があります。

日記に書いたところで解決する可能性は薄いのですが、偶然にも知っている人がいて、偶然にも掲示板で解答してくれるとか、ミラクルなコトを祈って相談してみます。

それはデータコンポーネント(?)機能の使い方。
“新しい項目の追加”で、App_Codeに追加できる DataSet.xsdですね。

[T_Customer] [T_Sex] [T_Carrier]
ID Name SexCd CarrierCd SexCd SexNm CarrierCd CarrierNm
--+------+-----+--------- -----+----- ---------+---------
1 岩崎 1 1 1 男性 1 au
2 佐藤 1 2 2 女性 2 DoCoMo
3 高橋 2 3 3 SoftBank
4 伊藤 2 1

上記のような3つのテーブルがあった場合、当然、画面には以下のように表示したいワケです。

 ┌──┬──┬────┐
 |名前|性別|キャリア|
 ├──┼──┼────┤
 |岩崎|男性|au |
 |佐藤|男性|DoCoMo |
 |高橋|女性|SoftBank|
 |伊藤|女性|au |
 └──┴──┴────┘

まぁ、良くある状態です。

こういったデータを取得する場合、以下のSQL分を実行するデータコンポーネントを追加してしまえば一発です。

 |SELECT T_Customer.Name, T_Sex.SexNm, T_Carrier.CarrierNm
 |FROM T_Carrier
 |INNER JOIN T_Customer
 |ON T_Carrier.CarrierCd = T_Customer.CarrierCd
 |INNER JOIN T_Sex
 |ON T_Customer.SexCd = T_Sex.SexCd

そして、Name・SexNm・CarrierNmの3つを示す型付データセットと、データを取得するためのテーブルアダプタが作成されます。

|Dim da = new DataSetTableAdapters.DataTableTableAdapter()
|Dim dt = new DataSet.DataTable1DataTable
|da.Fill(dt)

…とかすれば、上記のようなテーブルはスグに取得できます。


ですが、画面のツールボックスをよく見ると、「Relation」というコントロールが存在しています。
この使い方が不明なのです。

以下のようにテーブルを3つ追加して、それぞれにリレーションを追加します。

┌───────────┐
|T_Customer |
├┬──────────┤ ┌─────────┐
||ID | |T_Sex |
||Name | ├┬────────┤
||SexCd |━━━||SexCd |
||CarrierCd | ||SexNm |
├┴──────────┤ ├┴────────┤
|T_CustomerTableAdapter| |T_SexTableAdapter |
├┬──────────┤ ├┬────────┤
||Fill, GetData () | ||Fill, GetData ()|
└┴──────────┘ └┴────────┘


┌───────────┐
|T_Carrier |
├┬──────────┤
||CarrierCd |
||CarrierNm |
├┴──────────┤
|T_CarrierTableAdapter |
├┬──────────┤
||Fill, GetData () |
└┴──────────┘

こうしてできあがったデータセットたちですが、ココでリレーションを貼るコトで、一体どのように利用するかが不明。

最初は、名前・性別・キャリアなどの項目が、一発で取得できるようになるのかな?と思ったのですが、特別なテーブルアダプタが追加されるワケでもなさそうですし、いまいち不明。

なんかうまいやり方をすれば、連結された結果を取得できるのでしょうか?

もし知っている方が居たら、掲示板などで教えてもらえると嬉しいです。

そもそも使い方が間違っているんですかね???

…と言うコトで、自分もインターネットで検索しつつ、今日はこの辺で失礼致します。^-^/~

◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆
 日記への意見や感想等、随時募集中!!  http://www.mushikabu.net/
 岩崎 仁(FZK11464@nifty.com)  2006年 12月 21日 木曜日
◆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◆

※ 本ページは、テキスト形式で配信されていた時代の過去記事を一括で変換しています。一部、読みにくい部分があるかと思いますが、ご容赦ください。

忙しさでバタバタ。忘年会続きで忙しい。のメインビジュアル忙しさでバタバタ。忘年会続きで忙しい。
忘年会貧乏。お金も時間もありません。
忘年会貧乏。お金も時間もありません。のメインビジュアル