DataAdapter には、エラーが発生した場合でも DataAdapter.Update コマンドの処理を続行する「True」に設定できる ContinueUpdateOnError プロパティがあります。これは理想的であるため、挿入に失敗したデータの各行でエラーをキャッチできます。ただし、これは、バッチ処理がオフになっている場合 (DataAdapter.UpdateBatchSize = 1) にのみ正しく機能します。
DataAdapter.UpdateBatchSize が 0 またはバッチ処理をオンにする別の数値に設定され、バッチのレコード内でエラーが発生した場合、バッチ全体が更新に失敗します。明らかに、これは私が望んでいることではありません。
理想的には、2 つのシナリオを組み合わせて使用したいと考えています。バッチ処理を使用できるようにして、行の挿入時にデータベースへのラウンドトリップを減らしたいと考えていますが、同時に、発生した個々の行エラーをキャッチできるようにしたいと考えています (バッチがオンになっていて、ContinueUpdateOnError が「True」に設定されていると、何らかの理由で機能しません)。私には、それは何らかの方法で行わなければならないように見えます。挿入ごとにデータベースにトリップして各行を個別に挿入し、各行のエラーをキャッチするか、バッチをサーバーに送信しようとし、バッチで行が失敗した場合、バッチ全体が失敗します。
何かご意見は?