问题
I'm using a try catch blocks to do a batch update using ADO.NET2.0, the UpdateBatchSize is set 500, I can often catch exceptions, but I don't know which row update failed, is there a way to get the actual failed row?
回答1:
You can use event RowUpdated to get the reference of row:
yourAdapter.RowUpdated += OnRowUpdated;
Then:
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
}
}
来源:https://stackoverflow.com/questions/12558354/how-to-track-which-row-update-failed-in-batch-update