Това, което търсите, е SqlException, по-специално нарушението на ограниченията на първичния ключ. Можете да извадите тази конкретна грешка от това изключение, като разгледате свойството number на изхвърленото изключение. Този отговор вероятно е подходящ за това, от което се нуждаете:Как да идентифицирате дублирането на първичния ключ от код за грешка на SQL Server 2008?
Накратко, изглежда така:
// put this block in your loop
try
{
// do your insert
}
catch(SqlException ex)
{
// the exception alone won't tell you why it failed...
if(ex.Number == 2627) // <-- but this will
{
//Violation of primary key. Handle Exception
}
}
РЕДАКТИРАНЕ:
Това може да е малко хакерско, но можете също така просто да проверите компонента на съобщението на изключението. Нещо като това:
if (ex.Message.Contains("UniqueConstraint")) // do stuff