Как отследить, какое обновление строки не удалось в пакетном обновлении
Я использую блоки 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
}
}