2013-07-19 2 views
2

C# 코드를 사용하여 SQL 저장 프로 시저에서 발생한 사용자 지정 오류 메시지를 식별하는 방법은 무엇입니까? 저장 프로 시저SQL 사용자 지정 예외 처리

오류는 오류가 사용자 지정 오류 메시지임을 식별하는 방법을 위의에서이

RAISERROR (N'This is message %s %d.', -- Message text. 
     10, -- Severity, 
     1, -- State, 
     N'number', -- First argument. 
     5); -- Second argument. 

같이 발생합니다. (예) 이런 식으로

try{ 
    --actual code here 
} 
catch(SqlException ex) 
{ 
    --how to check here that the exception is custom one 
} 

답변

5

오류가 발생하면 메시지 텍스트 대신 MessageId를 제공 할 수 있습니다. 이 번호는 예외의 Number propertie에서 찾을 수 :

SQL :

RAISERROR(50001, 12, 1) 

C 번호 : 아이디어에 대한

if (sqlException.Number == 50001) 
    { 
     throw new CustomSQLException(//whatever); 
    } 
+0

+1, 감사합니다. RAISEERROR 자체에서 번호와 메시지를 모두 추가 할 수 있습니까? –

+0

불행히도 아닙니다. 당신은 당신이 제공하는 것을 결정할 필요가 있습니다. 아마도 당신은 메시지와 함께 별도의 테이블을 구현하고 Exception 클래스에서이 테이블을 querry 할 수 있습니까? –

+0

당신은 이것을 위해 sql table을 의미합니까? –