- - PR -
GetParentRowで親レコード取得する方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-08-22 15:51
いつも拝見させいていただいております。
DataTable->GetParentRowで親レコードの取得方法を以下の方法で実現しようとしました が取得できません。 (VB.NET 2005&SQL Server 2005) -------------------------------------------------------------- @事前に次のテーブルを生成する CREATE TABLE POST_TBL( POST_NO INT NOT NULL, POST_NAME NVARCHAR(50) NULL, PRIMARY KEY(POST_NO) ); INSERT INTO POST_TBL VALUES(1,"営業部"); CREATE TABLE USER_TBL( USER_NO INT NOT NULL, POST_NO INT NOT NULL, USER_NAME NVARCHAR(50) NULL, FOREIGN KEY(POST_NO) REFERENCES POST_TBL(POST_NO), PRIMARY KEY(USER_NO) ); INSERT INTO USER_TBL VALUES(1,1,'田中 太郎'); Aデータセット(DataSet1)に上記のテーブル情報を貼り付ける。 ・user_tblDataTable,post_tblDataTableとAdapterが生成される ・リレーションの制約は、「リレーションシップのみ」とする B親テーブルを取得する次のコードを実装 Dim dataset As New DataSet1 Dim ds As DataSet1.user_tblDataTable Dim da As New DataSet1TableAdapters.user_tblTableAdapter Dim row As System.Data.DataRow ds = dataset.Tables(dataset.user_tbl.TableName) da.Fill(ds) row = ds(0).GetParentRow(ds.ParentRelations(0).RelationName) -------------------------------------------------------------- 期待する結果として、最後のrowにpost_tblのレコードが入ると思うのですが。 どうしてもNothingになります。 どなたか、このような事例でご存知の方、ご教授ください。 以上。 [ メッセージ編集済み 編集者: ジルカ 編集日時 2006-08-22 16:00 ] |
|
投稿日時: 2006-08-23 12:08
自己回答です。
どうやら使い方を間違えていたようです。 Dim dataset As New DataSet1 Dim da1 As New DataSet1TableAdapters.USER_TBLTableAdapter Dim da2 As New DataSet1TableAdapters.POST_TBLTableAdapter Dim row As System.Data.DataRow da1.Fill(dataset.Tables(dataset.USER_TBL.TableName)) da2.Fill(dataset.Tables(dataset.POST_TBL.TableName)) row = dataset.Tables(dataset.USER_TBL.TableName).Rows(0).GetParentRow(dataset.Relations(0)) 上記のコードに変更したら期待する値を取得することができました。 GetParentRowを呼ぶと、自動的に親テーブルをSELECTすると思ってました。 どうやら、あらかじめdatasetに値をセットしなければいけようです。 (解釈あってますでしょうか。。。) [ メッセージ編集済み 編集者: ジルカ 編集日時 2006-08-23 12:08 ] |
1