Как отловить конкретную ошибку БД в ASP.NET - PullRequest
0 голосов
/ 29 января 2010

В моем SP (Sql Server 2005) я поднимаю ошибку, используя

Raiserror ('No Records Fetched' , 16 ,1)

Я хочу поймать эту конкретную ошибку в ASP.NET .. как мне это сделать?

Ответы [ 2 ]

1 голос
/ 29 января 2010

Это должно сделать это:

catch(SqlException ex) {
    if(ex.Errors.Count > 0 && ex.Errors[0].Message == "No Records Fetched" && ex.Errors[0].Class == 16) {
        // your error
    }
}

Однако коллекция ошибок также может содержать сообщения оператора print низкой серьезности и другие нежелательные сообщения из предыдущих операторов. Вам решать, хотите ли вы написать более сложный код фильтрации, чтобы устранить их.

0 голосов
/ 29 января 2010

Хотя ответ Кристиана Хейтера верен, альтернативой может быть использование sp_addmessage для создания собственного номера ошибки клиента, который имеет отношение именно к этой проблеме. Это избавит вас от необходимости разбирать сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...