2011-01-03 7 views
3

私は、DataAdapter.Filled()であるDataSet内のデータを取得し、データベースにINSERTするために、 "名前を付けて保存"ボタンを実装しようとしています。C#DataSet、DataAdapter - 行状態を変更してINSERTを呼び出す方法

データセットには、1つの親(単一の行テーブル)、3つの子テーブルがあります。 foriegnカスケード削除/更新制約付き。私の意図は、ユーザーに新しいプライマリキー(複雑)を要求し、DataAdapterまたはDataSetに、DataRowState.Addedという4つのテーブルのすべての行(およびそれに続くもの)をマークするように指示することです。しかし、DataRow.SetAdded()は例外をスローします。 "DataRowState.Unchanged行でのみSetAddedできます"

誰もそれを行う方法がありますか? "名前を付けて保存"を実行する他の効率的な方法も歓迎されます。どうもありがとう。

EDIT: 場合によっては、DataRelationsが既に設定されています。通常のINSERT、UPDATE、DELETE、SELECTは完全に機能します。

答えて

5

多分これは最終的に

row.AcceptChanges(); // sets DataRowState.Unchanged 
row.SetAdded(); 
+0

答えとしてこれをマークすることが動作します。何故私が試したかわからない、それはエラーを報告する。ありがとう。 – Jake

関連する問題