Was Sie suchen, ist eine SqlException, insbesondere die Verletzung von Primärschlüsseleinschränkungen. Sie können diesen speziellen Fehler aus dieser Ausnahme herausholen, indem Sie sich die number-Eigenschaft der ausgelösten Ausnahme ansehen. Diese Antwort ist wahrscheinlich relevant für Ihre Frage:Wie kann man die Primärschlüsselduplizierung anhand eines SQL Server 2008-Fehlercodes identifizieren?
Zusammengefasst sieht es so aus:
// 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
}
}
BEARBEITEN:
Das mag ein bisschen hacky sein, aber Sie könnten auch einfach die Nachrichtenkomponente der Ausnahme untersuchen. Etwa so:
if (ex.Message.Contains("UniqueConstraint")) // do stuff