Как отследить, какое обновление строки не удалось в пакетном обновлении

Я использую блоки try try для пакетного обновления с использованием ADO.NET2.0, значение UpdateBatchSize установлено на 500, я часто могу ловить исключения, но я не знаю, какое обновление строки не удалось, есть ли способ получить фактический неудачный ряд?

1 ответ

Решение

Вы можете использовать событие 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
    }
}
Другие вопросы по тегам