Det du letar efter är en SqlException, specifikt överträdelsen av primära nyckelbegränsningar. Du kan få det här specifika felet ur detta undantag genom att titta på number-egenskapen för det kastade undantaget. Det här svaret är förmodligen relevant för vad du behöver:Hur identifierar man primärnyckeldupliceringen från en SQL Server 2008-felkod?
Sammanfattningsvis ser det ut så här:
// 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
}
}
EDIT:
Detta kan vara lite hackigt, men du kan också bara inspektera meddelandekomponenten i undantaget. Något så här:
if (ex.Message.Contains("UniqueConstraint")) // do stuff