sql >> Database >  >> RDS >> Sqlserver

De beste manier om sql unique constraint-schendingen in c# op te vangen tijdens invoegingen

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


  1. Unieke beperking met voorwaarden in MYSQL

  2. Gemakkelijke manier om een ​​SQL-tabel te exporteren zonder toegang tot de server of phpMyADMIN

  3. Waar zijn de PostgreSQL-logboeken op macOS?

  4. Speciale tekens in MySQL-tabelnaam