共通キーに基づいて複数のテーブルからデータセットにデータを読み込むバッチ プロセスがあります。次に、同じキーでクエリを実行する宛先データの 2 つ目のデータセットを作成します。
この時点で、(テーブル/列レイアウトの観点から) 構造的に同一の 2 つのデータセットがあります。次に、ソースに存在する行を宛先データセットに追加するプロセスがあります。さらに、プロセスは共通キーに基づいて特定の列の更新も試みます。
更新する必要がある既存の行で DataAdapter.UPDATE コマンドが呼び出されると、問題が発生するようです。エラー: System.InvalidOperationException は処理されませんでした Message="SELECT ステートメントで指定されたテーブルに一意のキー列または識別子列が含まれていないか、SELECT ステートメントにすべてのキー列が含まれていません。"
宛先 DB の PK を制御する方法がないため、この特定の更新のキーが何であるかをアダプタに伝える方法はありますか? データセット内の各 DataTable の主キーを「カスタム」に設定しました。
これは非ユーザー インターフェイスのバッチ プロセスであり、そのパフォーマンス要件は非常に低くなります。(データセットの使用方法などを説明するため)
何かご意見は?