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