Попробуйте и поймайте SqlException
Затем сделайте это:
StringBuilder sqlErrorMessages = new StringBuilder ("Исключение Sql: \ n");
foreach (SqlError error in ex.Errors)
{
sqlErrorMessages.AppendFormat("Mesage: {0}\n", error.Message)
.AppendFormat("Severity level: {0}\n", error.Class)
.AppendFormat("State: {0}\n", error.State)
.AppendFormat("Number: {0}\n", error.Number)
.AppendFormat("Procedure: {0}\n", error.Procedure)
.AppendFormat("Source: {0}\n", error.Source)
.AppendFormat("LineNumber: {0}\n", error.LineNumber)
.AppendFormat("Server: {0}\n", error.Server)
.AppendLine(new string('-',error.Message.Length+7));
}
Вы будетеполучить исключение в C #, только если серьезность вашей ошибки 16 или выше.Если вы используете PRINT, вы не получите исключение в .NET.
Если вы сможете редактировать код ошибки повышения, это приведет к SqlException в C #:
RAISERROR ('Некоторое сообщение об ошибке ', 16, 1) Затем вы можете перейти к каждой отдельной ошибке в коллекции SqlException.Errors.
Просто замечание: SQL Server продолжит выполнять команды после RAISERROR, если вы не't ВОЗВРАТИТЕ сразу после этого.Если вы не вернетесь, вы можете получить несколько ошибок назад.