Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana saya bisa tahu jika SQLexception dilemparkan karena pelanggaran kunci asing?

Asumsikan Anda menggunakan SQL Server.

Menggunakan arsip web - 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);
        }
    }

}

Kasus 547 adalah milikmu.

PERBARUI Di atas adalah contoh kode dan tidak boleh digunakan. Harap ikuti tautan untuk menjelaskan alasannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Beberapa Indeks vs Indeks Multi-Kolom

  2. Mengapa kesalahan terkait jaringan atau spesifik contoh terjadi saat membuat koneksi ke SQL Server?

  3. T-SQL mendapatkan jumlah hari kerja antara 2 tanggal

  4. Cara Mengubah Susunan Database SQL Server menggunakan T-SQL

  5. EXISTS vs JOIN dan penggunaan klausa EXISTS