1

try catchブロックを使用してADO.NET2.0を使用してバッチ更新を実行しています。UpdateBatchSizeは500に設定されています。例外をキャッチできることがよくありますが、どの行の更新が失敗したかわかりません。取得する方法はありますか。実際に失敗した行?

4

1 に答える 1

2

イベントRowUpdatedを使用して、行の参照を取得できます。

yourAdapter.RowUpdated += OnRowUpdated;

それで:

protected static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs args)
{
    if (args.Status == UpdateStatus.ErrorsOccurred)
    {
        // Reference to row which throws error
        var row = args.Row;

        row.RowError = args.Errors.Message;
        args.Status = UpdateStatus.SkipCurrentRow;

        // Do something more
    }
}
于 2012-09-24T04:18:32.727 に答える