2012-01-11 28 views
5

Tôi đang sử dụng Khung thực thể với các thủ tục được lưu trữ để chèn/cập nhật/xóa các thực thể.Máy chủ SQL - lỗi báo cáo quay lại .NET

Nhiệm vụ mà tôi đang thực hiện là quản lý khoảng không quảng cáo với các phương thức FIFO/LIFO => các chèn/cập nhật/xóa thực hiện một số kiểm tra và có thể thất bại (đôi khi chúng không thành công).

Vấn đề là tôi muốn báo cáo lại với .NET điều gì đã xảy ra và tại sao. Tôi làm nó như thế nào?

Hiện nay tôi đang sử dụng một cái gì đó như thế này:

BEGIN --rollback 
ROLLBACK TRAN 
RAISERROR (N'There''s not enough items in stock.', -- message 
    16, -- severity 
    1) -- state 
END; 

tôi luôn luôn nhận được "lỗi MSDTC" - "Các nhà cung cấp tiềm ẩn không thành công trên EnlistTransaction."

Trả lời

0

Bạn sẽ phải kiểm tra InnerException để nhận lỗi tùy chỉnh mà bạn đã nêu ra.

+0

Tôi đã làm điều này và InnerException là rỗng. – kubal5003

1

Tôi không nghĩ rằng nó đang tiến xa đến vậy. Đó là lỗi khi một trong các giao dịch bắt đầu, lỗi tùy chỉnh của bạn không được nâng lên.

+0

Đó có thể là trường hợp. Vấn đề là nếu tất cả mọi thứ là OK thì giao dịch cam kết tốt -> xử lý lỗi của tôi gây ra một cái gì đó để phá vỡ. Tôi cho rằng luồng thực thi trong SP không bị gián đoạn và khi nó đạt đến tất cả mọi thứ COMMIT bị phá vỡ (vì nó nên, bởi vì giao dịch đã được khôi phục). E tity Framework báo cáo lỗi cuối cùng -> nó không phải của tôi .. – kubal5003

Các vấn đề liên quan