|
■No14582 (富田 さん) に返信 > A親のデータ1件に対し、B子のデータn件が紐付く関係です。 カラムCD1 というキーで繋がっているのですよね? 定義を見る限り、B子側は0〜n件ではなく、0〜1件に見えるのですが…。
実はB子は「カラムCD2」を持っていて、カラムCD1とカラムCD2で、B子の主キーを成しているのでしょうか? とりあえず、その前提で回答しなおすと、登録処理は、 ds.A親.Rows.Add(9 "追加行"); ds.B子.Rows.Add(9, 1, "4-1", 111); ds.B子.Rows.Add(9, 2, "4-2", 222); ds.B子.Rows.Add(9, 3, "4-3", 333); であるとか、 DataSet1.A親Row rowP = ds.A親.AddA親Row(10, "10"); ds.B子.AddB子Row(rowP, 1, "10-1", 111); ds.B子.AddB子Row(rowP, 2, "10-2", 222); ds.B子.AddB子Row(rowP, 3, "10-2", 333); といった感じでできますね。
> その際、B子にA親のカラムCD1の値を入れたいのですが、(※B子.rows[i][カラムCD1] = A親.rows[c][カラムCD1]としてます) B子.rows[i] という事は、その行はすでに B子に登録済みなのですよね。 登録後に、カラムCD1 の値をつけなおしたい、という意味のようなので、
ds.B子.AddB子Row(ds.A親.AddA親Row(1, "あああ"), 10, "アアア", 123); ds.B子.AddB子Row(ds.A親.AddA親Row(2, "いいい"), 20, "イイイ", 456); ds.B子.AddB子Row(ds.A親.AddA親Row(3, "ううう"), 10, "ウウウ", 789);
ds.B子[1].カラムCD1 = ds.A親[0].カラムCD1;
ds.EnforceConstraints = false; ds.B子[2].カラムCD1 = ds.A親[0].カラムCD1; ds.B子[0].カラムCD2 = 30; ds.EnforceConstraints = true;
のようなコードを書いてみましたが、 > FK_A親_A子_カラムCD1には、A親のカラムCD1の値が必要です等のメッセージと共に、 というエラーにはなりませんでした。 具体的なコードを提示してもらえますか?
|