C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■84128 / 3階層)  多階層のxmlのDataTableへの読み書きについて
□投稿者/ 魔界の仮面弁士 (1284回)-(2017/05/17(Wed) 20:46:16)
2017/05/18(Thu) 12:07:08 編集(投稿者)

No84127 (なと さん) に返信
> DataGridViewだとParentしか読まなかったので、気が付きませんでした!

.DataSource = ds;
.DataMember = tableName;

の代わりに、

.DataSource = ds.Tables[tableName];

でも OK です。これは DataGridView であっても同じことです。


ただ、階層問い合わせにするのであれば、
DataSet/DataTable を DataSource に直接バインドするのではなく、
BindingSource 経由で渡した方が良いかもしれません。


>>リレーションを繋ぐのが面倒だったので
> ds.Relations.Addを使えばいいのかな・・・ちょっと調べてみます。

ReadXml を呼び出した時点で、リレーションは自動的に貼られています。


『ds.Tables["Parent"].Rows[0].GetChildRows("Parent_Childs")[0]』とすれば
『ds.Tables["Childs"].Rows[0]』を指し示します。
これは <Childs> のタグに相当します。(Children ではないのですね)


『ds.Tables["Childs"].Rows[0].GetChildRows("Childs_Child")[0]』なら、
『ds.Tables["Child"].Rows[0]』(すなわち 35歳の子1 の行)です。


もしも DataGridView に表示させるのであれば、
それぞれの DataGridViewRow から DataBoundItem プロパティ経由で
DataRowView オブジェクトが得られるので、その Row プロパティから、
該当の DataRow オブジェクトが得られるようになっています。

DataRow さえ得られれば、あとは上記と同様に、
GetChildRows メソッドあるいは GetParentRow/GetParentRows メソッドで
階層を辿ることができるでしょう。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: 多階層のxmlのDataTableへの読み書きについて /なと →Re[4]: 多階層のxmlのDataTableへの読み書きについて /なと
 
上記関連ツリー

多階層のxmlのDataTableへの読み書きについて / なと (17/05/17(Wed) 18:28) #84124
Re[1]: 多階層のxmlのDataTableへの読み書きについて / WebSurfer (17/05/17(Wed) 18:54) #84125
Re[1]: 多階層のxmlのDataTableへの読み書きについて / 魔界の仮面弁士 (17/05/17(Wed) 19:47) #84126
  └ Re[2]: 多階層のxmlのDataTableへの読み書きについて / なと (17/05/17(Wed) 20:24) #84127
    └ 多階層のxmlのDataTableへの読み書きについて / 魔界の仮面弁士 (17/05/17(Wed) 20:46) #84128 ←Now
      └ Re[4]: 多階層のxmlのDataTableへの読み書きについて / なと (17/05/18(Thu) 21:40) #84132
        └ Re[5]: 多階層のxmlのDataTableへの読み書きについて / 魔界の仮面弁士 (17/05/18(Thu) 23:54) #84134
          └ Re[6]: 多階層のxmlのDataTableへの読み書きについて / なと (17/05/19(Fri) 09:44) #84135 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信