アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて書き込みさせていただきます。
ただいまxmlをDetaSetに読み込ませ、そこから指定した属性値を所得し
DataGridViewに表示しようとしているのですが思うようにいかず困っています。できればご享受お願いいたします。

以下、使用するxmlのイメージです。
<?xml version="1.0" encoding="Shift_JIS" ?>
<タグ1>
<タグ2 属性21="a1" 属性22="a2">
<タグ3 属性31="b1" 属性32="b2"></タグ3>
<タグ4 属性41="c1" 属性42="c2"></タグ4>
<タグ4 属性41="d1" 属性42="d2"></タグ4>
</タグ2>
<タグ2 属性21="e1" 属性22="e2">
<タグ3 属性31="f1" 属性32="f2"></タグ3>
○ <タグ4 属性41="g1" 属性42="g2"></タグ4>
○ <タグ4 属性41="h1" 属性42="h2"></タグ4>
</タグ2>
<タグ2 属性21="i1" 属性22="i2">
<タグ3 属性31="j1" 属性32="j2"></タグ3>
<タグ4 属性41="k1" 属性42="k2"></タグ4>
<タグ4 属性41="l1" 属性42="l2"></タグ4>
</タグ2>
</タグ1>

希望する結果:
g1 g2
h1 h2
(xmlで○をつけた所の属性値のみをDataGridViewに表示)

一応現在のコード:
Dim dset As New DataSet
dset.ReadXml("./test.xml")
DataGridView.DataSource = dset.Tables(3).DefaultView
(この場合、タグ4の全ての属性値 c1~l2 が表示されてしまいます)

なお環境はvb2005を使用しています。

A 回答 (1件)

DataViewオブジェクトを RowFilter指示で作ればいいのでは



' ここにブレークポイント設定して
dim tbl as DataTable = dset.Table("タグ4")
' tblをクイックウォッチする
' ColumnsやRowsで何か違いがないのかを調べて見ましょう
dim dv as new DataView( tbl, "タグ2_Id=1", "",DataViewRowState.CurrentRows)
DataGridView1.DataSource = dv

といった具合です
RowFilteパラメータを
タグ2_Id=0の場合 c1,c2 / d1,d2
タグ2_Id=1の場合 g1,g2 / h1,h2
タグ2_Id=2の場合 k1,k2 / l1,l2
が選択できると思いますよ
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
こちらで早速試したところ、無事動作させることができました。
ご教授ありがとうございました。

お礼日時:2009/03/19 18:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!