sql >> Database teknologi >  >> RDS >> Sqlserver

Bedste måde at fange sql unikke begrænsninger i c# under indsættelser

Det, du leder efter, er en SqlException, specifikt overtrædelsen af ​​primære nøglebegrænsninger. Du kan få denne specifikke fejl ud af denne undtagelse ved at se på number-egenskaben for den kastede undtagelse. Dette svar er sandsynligvis relevant for det, du har brug for:Hvordan identificerer du den primære nøgleduplikering fra en SQL Server 2008-fejlkode?

Sammenfattende ser det sådan ud:

// 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:

Dette kan være lidt hacky, men du kan også bare inspicere meddelelseskomponenten i undtagelsen. Noget som dette:

if (ex.Message.Contains("UniqueConstraint")) // do stuff


  1. Oracle SQL udviklerværktøj:Download og installation

  2. Sådan tilføjes en fremmednøglebegrænsning til en eksisterende tabel i SQL Server (T-SQL)

  3. Sådan installeres SQLite og SQLite Browser i Ubuntu

  4. SQLite Connection lækket, selvom alt lukkede