To, co hledáte, je SqlException, konkrétně porušení omezení primárního klíče. Tuto konkrétní chybu můžete z této výjimky získat tak, že se podíváte na vlastnost číslo vyvolané výjimky. Tato odpověď je pravděpodobně relevantní pro to, co potřebujete:Jak identifikovat duplikaci primárního klíče z chybového kódu SQL Server 2008?
V souhrnu to vypadá takto:
// 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:
To může být trochu otřesné, ale můžete také zkontrolovat komponentu zprávy výjimky. Něco jako toto:
if (ex.Message.Contains("UniqueConstraint")) // do stuff