sql >> Databáze >  >> RDS >> Sqlserver

Nejlepší způsob, jak zachytit porušení jedinečných omezení SQL v c# během vkládání

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


  1. Vytvářejte soubory PDF pomocí PLSQL v Oracle

  2. Postgres vlevo Připojte se s podmínkou, kde

  3. Nejlepší blogy a webové stránky MySQL pro správce databází

  4. Analyzovat řetězec oddělený potrubím do sloupců?