Wat u zoekt is een SqlException, met name de schending van primaire sleutelbeperkingen. U kunt deze specifieke fout uit deze uitzondering halen door naar de eigenschap number van de gegenereerde uitzondering te kijken. Dit antwoord is waarschijnlijk relevant voor wat u nodig hebt:Hoe de primaire sleutelduplicatie te identificeren van een SQL Server 2008-foutcode?
Samengevat ziet het er als volgt uit:
// 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
}
}
BEWERKEN:
Dit is misschien een beetje hacky, maar je kunt ook gewoon de berichtcomponent van de uitzondering inspecteren. Zoiets als dit:
if (ex.Message.Contains("UniqueConstraint")) // do stuff