Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tốt nhất để bắt lỗi vi phạm ràng buộc duy nhất của sql trong c # trong khi chèn

Những gì bạn đang tìm kiếm là một SqlException, cụ thể là vi phạm các ràng buộc khóa chính. Bạn có thể loại bỏ lỗi cụ thể này ra khỏi ngoại lệ này bằng cách xem thuộc tính số của ngoại lệ được đưa ra. Câu trả lời này có thể phù hợp với những gì bạn cần:Làm thế nào để xác định sự trùng lặp khóa chính từ mã lỗi SQL Server 2008?

Tóm lại, nó trông như thế này:

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

CHỈNH SỬA:

Điều này có thể hơi khó, nhưng bạn cũng có thể chỉ cần kiểm tra thành phần thông báo của ngoại lệ. Một cái gì đó như thế này:

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. Cách cài đặt SSMS

  2. Xóa các hàng trùng lặp (dựa trên giá trị từ nhiều cột) khỏi bảng SQL

  3. Cách lấy lịch Quý từ một ngày trong TSQL

  4. Giới thiệu tính năng mới:Nhóm luôn sẵn có

  5. Các ký tự tối đa cho NVARCHAR (MAX) là bao nhiêu?