2009-11-25 4 views

답변

0

예 당신이 할 수있는 .... SQL 서버 2005

고맙습니다를 사용하여 내에서 .aspx 양식 ?? 메신저에서이 오류를 표시 할 수 있지만, 일반적으로는 사용자가 시스템 오류 메시지를 표시하지 않으 - 대신 사용자에게 친숙한 메시지를 표시하는 것이 좋습니다.

그러나 레이블을 만들고 레이블 Text의 값을 @myError으로 설정하면됩니다.

0

TRY/CATCH를 @@ ERROR 대신 T-SQL에서 사용하는 것이 좋습니다. 나중에 각 문장 다음에 다시 설정되기 때문에 악명 높은 문제가 있습니다. Exception handling and nested transactions : 자세한 내용은

  • Implementing Error Handling with Stored Procedures
  • Error Handling in SQL Server – a Background
    • 를 참조하십시오 내가 훨씬 여기에 설명 된 것과 같은 절차 템플릿을 사용하여, TRY/CATCH를 선호합니다. 이렇게하면 다른 CLR 예외처럼 catch 할 수있는 SqlException으로 ASP.Net에 오류가 발생합니다.

    2

    SqlConnectionInfoMessage 이벤트를 사용하여 SQL 경고 및 정보 메시지를 클라이언트에 출력 할 수 있습니다. 기본적으로이 이벤트는 정보 메시지가 severity of less than 10 인 경우에만 발생합니다. SqlConnectionFireInfoMessageEventOnUserErrors 속성을 true로 설정하면 예외를 throw하고 실행을 중지하는 대신 InfoMessage 이벤트에 심각도 11에서 16의 오류가 트리거 될 수 있습니다. InfoMessage 이벤트에 대한 이벤트 처리기를 추가하여 클라이언트에 메시지를 출력 할 수 있습니다.

    using (SqlConnection conn = new SqlConnection(connString)) 
    { 
        conn.Open(); 
        conn.FireInfoMessageEventOnUserErrors = true; 
        conn.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e) 
        { 
         txtMessage.Text += e.Message; 
        }; 
        ... 
    } 
    

    참조 : HOW TO: Return Errors and Warnings from a SQL Server Stored Procedure in ADO.NET

    +0

    아주 좋은 기술! – RickNZ

    관련 문제