hola y bienvenido, la forma mas simple es manejar transacciones cuando hagas inserts masivos, porque si tienes el clásico try catch se seguirá con el siguiente registro y se supone que debe ser transaccional la inserción para mantener integridad...
y si quieres cachar la fila que dio error en el catch puedes guardar un log del error y al mismo tiempo hacer un Roll back para deshacer los cambios..
date una vuelta por aqui
http://www.c-sharpcorner.com/Code/20...nsNConcurr.asp http://www.dotnet247.com/247reference/msgs/3/17933.aspx http://www.codeproject.com/cs/database/dttl.asp
Salu2