Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Najlepszy sposób na wyłapanie naruszeń unikalnych ograniczeń sql w c# podczas wstawiania

To, czego szukasz, to SqlException, a konkretnie naruszenie ograniczeń klucza podstawowego. Ten konkretny błąd można uzyskać z tego wyjątku, przeglądając właściwość number zgłoszonego wyjątku. Ta odpowiedź prawdopodobnie dotyczy tego, czego potrzebujesz:Jak zidentyfikować duplikację klucza podstawowego z kodu błędu SQL Server 2008?

Podsumowując, wygląda to tak:

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

EDYCJA:

Może to być trochę dziwaczne, ale możesz też po prostu sprawdzić komponent wiadomości wyjątku. Coś takiego:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj datę na inną strefę czasową w SQL Server

  2. JSON w SQL Server

  3. Jakie są sposoby uzyskania dostępu do Microsoft SQL Server z systemu Linux?

  4. SQL Server:Jaka jest różnica między CROSS JOIN a FULL OUTER JOIN?

  5. Unikanie wstrzykiwania SQL bez parametrów