Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да разбера дали SQLexception е изхвърлен поради нарушение на външния ключ?

Да предположим, че използвате SQL Server.

Използване на уеб архив - https://web.archive.org/web/20190120182351/https://blogs.msdn.microsoft.com/tomholl/2007/08/01/mapping-sql-server-errors-to-net -exceptions-the-fun-way/

try
{
    # SQL Stuff
}
catch (SqlException ex)
{
    if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
    {
        switch (ex.Errors[0].Number)
        {
            case 547: // Foreign Key violation
                throw new InvalidOperationException("Some helpful description", ex);
                break;
            case 2601: // Primary key violation
                throw new DuplicateRecordException("Some other helpful description", ex);
                break;
            default:
                throw new DataAccessException(ex);
        }
    }

}

Случай 547 е вашият човек.

АКТУАЛИЗИРАНЕ Горното е примерен код и не трябва да се използва. Моля, следвайте връзката, за да обясните защо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. има ли предимство varchar(500) пред varchar(8000)?

  2. Как да получа граничните координати за пощенски (пощенски) код в САЩ?

  3. Как да се свържете с база данни на SQL сървър от приложение за Windows 10 UWP

  4. 7645 Нулев или празен предикат на пълен текст

  5. SQL Server SELECT в съществуваща таблица