2009-07-01 6 views
7

Tôi có một trình xử lý ngoại lệ cho kiểu SqlException và tôi đang xem thuộc tính SqlException.Number của ngoại lệ để xác định xem một khóa chết có xảy ra (1205) hay không. Tôi là currious, thay vì viết SqlException.Number == 1205, là có một enum tôi có thể tham khảo đó sẽ sản xuất một cái gì đó tương tự như SqlException.Number == SqlExceptionNumberEnum.DeadLockVictim?Số lỗi .NET SqlClient Enum Type

Có thể không khả thi do khối lượng cắt của các thông báo lỗi/số điện thoại nhưng nghĩ rằng nó đáng được yêu cầu. Cảm ơn!

Trả lời

1

Không phải là tôi biết. Cụ thể, bạn có thể xác định số lỗi của riêng bạn với sp_addmessage và lỗi thay đổi (phát triển) trên mỗi phiên bản SQL Server, vì vậy nó sẽ nhanh chóng là một vấn đề nếu (ví dụ) bạn đang sử dụng .NET 2.0 với SQL Server 2008, số của bạn sẽ tồn tại.

1

Rất tiếc, tôi không nghĩ điều này là khả thi. Nếu bạn chạy truy vấn sau,

select * from sys.messages where language_id=1033 and severity between 11 and 16 

sản xuất trên sáu nghìn hàng. Bạn có thể viết một ứng dụng nhỏ để phân tích bảng và tạo ra một lớp C# với các thuộc tính const đại diện cho mỗi thông điệp, nhưng có lẽ nó không đáng để thử.