0

新しいレコードをバインディングソースに追加するときに親行を設定する方法を教えてください。型指定されたデータセット、C# winforms を使用しています。

私のコード(親と子の行を追加):

DataRowView drvParent = (DataRowView)bsParent.AddNew()
drvParent.BeginEdit();
drvParent["ID"] = -1;
drvParent["Name"] = "Parent";
drvParent.EndEdit();
DataRowView drvChild = (DataRowView)bsChild.AddNew();
drvChild.BeginEdit();
drvChild["ID"] = -1;
drvChild.Row.SetParentRow(drvParent.Row);
drvChild["Name"] = "Child";
drvChild.EndEdit();

次に、[保存] ボタンをクリックすると:

this.Validate();
bsChild.EndEdit();
bsParent.EndEdit();
ParentTableAdapter pAdapter = new ParentTableAdapter();
pAdapter.Update(myDataSet.Parent);
ChildTableAdapter cAdapter = new ChildTableAdapter();
cAdapter.Update(myDataSet.Child);

子の ID 親が null です。なぜですか? 一方、私はすでに子の親行を設定しています。ありがとう

4

1 に答える 1

0

私は現在、同様の問題に取り組んでいます。親テーブルと子テーブルの間に正しい DataRelations があることを確認する必要があります。この場合、これは外部キーの形式になります。外部キーの関係がなければ、最初に親テーブルで更新を行い、親の ID が生成され、次に子の 2 番目の更新で外部キーではない -1 を使用して更新しようとすると、何が起こっていると思いますか? . 外部キー関係を設定する場合、親テーブルの更新後に、子テーブルの外部キーに正しい ID が入力される必要があります。

于 2013-01-23T21:26:36.763 に答える